快速排序参考阮一峰老师最开始写的版本,不断从数组中间分开,直到分成两个数字,就可以比较大小。小的排左边,大的往右边排。
let quickSort = (numbers) =>{
if(numbers.length<=1){return numbers}
let quickIndex = Math.floor(numbers.length/2)
let pvot = numbers.splice(quickIndex,1)[0]
let left = []
let right = []
for(let i = 0; i<numbers.length; i++){
if(numbers[i]> pvot){
right.push(numbers[i])
}else{
left.push(numbers[i])
}
}return quickSort(left).concat([pvot],quickSort(right))
}
冒泡排序:两两比较相邻记录的关键字,如果反序则交换,直至没有反序为止。
//从小到大
function BubbleSort(arr){
let i,j,temp;
for(i=0;i<arr.length-1;i++){
for(j=arr.length-1;j>i;j--){
if(arr[j]<arr[j-1]){ //j为从后往前循环
temp=arr[j-1];
arr[j-1]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}