算法-这事不好办法可以靠靠靠看看

80 阅读1分钟

//冒泡排序: 最大的往后放

var arr = [5,4,3,2,1];
for(let j = 0; j < arr.length-1; j++){
    for(let i = 0;i < arr.length-1-j;i++){
        if(arr[i]>arr[i+1]){
            [arr[i],arr[i+1]] = [arr[i+1],arr[i]]
        }
    }
}
console.log(arr);

//选择排序: 选出最小的放到已排好的队列后

var arr = [4,5,3,2,1]
for(let j = 0; j<arr.length; j++){
    let minIndex = j;
    for(var i = j; i < arr.length; i++){
        if(arr[i] < arr[minIndex]){
            minIndex = i
        }
    }
    [arr[j],arr[minIndex]] = [arr[minIndex],arr[j]]
}
console.log(arr);

//插入排序: 实指把待排序元素插入到已排好的序列里, 从后往前挤

var arr = [1,3,5,2,4]
for(let j = 1; j < arr.length; j++){
    let i = j;
    let target = arr[i]
    while(i > 0 && arr[i-1] > target){
        arr[i] = arr[i-1]
        i--
    }
    arr[i] = target
}
console.log(arr);

//扁平结构转嵌套结构

// 扁平结构
const list = [
  {
    name: '数据1',
    parent: null,
    id: 1,
  },
  {
    name: '数据2',
    id: 2,
    parent: 1,
  },
  {
    name: '数据3',
    parent: 2,
    id: 3,
  },
  {
    name: '数据4',
    parent: 3,
    id: 4,
  },
];

// 树形结构
const tree = [
  {
    name: '数据1',
    id: 1,
    children: [
      {
        name: '数据2',
        id: 2,
        children: [
          {
            name: '数据3',
            id: 3,
            children: [
              {
                name: '数据4',
                id: 4,
              },
            ],
          },
        ],
      },
    ],
  },
];