快速排序参考阮一峰老师最开始写的版本,不断从数组中间分开,直到分成两个数字,就可以比较大小。小的排左边,大的往右边排。

    1. let quickSort = (numbers) =>{
    2. if(numbers.length<=1){return numbers}
    3. let quickIndex = Math.floor(numbers.length/2)
    4. let pvot = numbers.splice(quickIndex,1)[0]
    5. let left = []
    6. let right = []
    7. for(let i = 0; i<numbers.length; i++){
    8. if(numbers[i]> pvot){
    9. right.push(numbers[i])
    10. }else{
    11. left.push(numbers[i])
    12. }
    13. }return quickSort(left).concat([pvot],quickSort(right))
    14. }

    冒泡排序:两两比较相邻记录的关键字,如果反序则交换,直至没有反序为止。

    1. //从小到大
    2. function BubbleSort(arr){
    3. let i,j,temp;
    4. for(i=0;i<arr.length-1;i++){
    5. for(j=arr.length-1;j>i;j--){
    6. if(arr[j]<arr[j-1]){ //j为从后往前循环
    7. temp=arr[j-1];
    8. arr[j-1]=arr[j];
    9. arr[j]=temp;
    10. }
    11. }
    12. }
    13. return arr;
    14. }