// 冒泡排序
function bubbleSort(arr){
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
var tmp=arr[j]
arr[j]=arr[j+1]
arr[j+1]=tmp
}
}
}
}
var arr=[3,2,5,1,4]
bubbleSort(arr)
console.log(arr)
// 选择排序
function selectSort(arr){
for(var i=0;i<arr.length;i++){
var minIndex=i
for(var j=i;j<arr.length;j++){
if(arr[minIndex]>arr[j]){
minIndex=j
}
}
if(i!==minIndex){
var tmp=arr[i]
arr[i]=arr[minIndex]
arr[minIndex]=tmp
}
}
}
var arr=[3,2,5,1,4]
selectSort(arr)
console.log(arr)
function insertSort(arr){
for(var i=1;i<arr.length;i++){
var j=i
var tmp=arr[j]
while(j>0){
if(tmp<arr[j-1]){
arr[j]=arr[j-1]
}else{
break
}
j--
}
arr[j]=tmp
}
}
var arr=[3,2,5,1,4]
insertSort(arr)
console.log(arr)
function quickSort(arr){
function innerQuickSort(innerArr){
if(innerArr.length<=1)return innerArr
var left=[]
var right=[]
var base=innerArr[0]
for(var i=1;i<innerArr.length;i++){
if(innerArr[i]<base){
left.push(innerArr[i])
}else{
right.push(innerArr[i])
}
}
var newLeft=innerQuickSort(left)
var newRight=innerQuickSort(right)
return [...newLeft,base,...newRight]
}
return innerQuickSort(arr)
}
var arr=[3,2,5,1,4]
console.log(quickSort(arr))
let arr = [
{id: 1, name: '部门1', pid: 0},
{id: 2, name: '部门2', pid: 1},
{id: 3, name: '部门3', pid: 1},
{id: 4, name: '部门4', pid: 2},
{id: 5, name: '部门5', pid: 4},
]
function tree(pid,arr){
return arr.filter(item=>item.pid===pid).map(item=>({...item,children:tree(item.id,arr)}))
}