//冒泡排序: 最大的往后放
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,
},
],
},
],
},
],
},
];