数组的排序

冒泡排序

//每轮将数组中最大的值往后排 

function
bubbleSort(arr){ for(var i = 0; i < arr.length -1; i++){ for(var j = 0; j < arr.length -1-i;j++){ if(arr[j] > arr[j+1]){ var temp = arr[j]; arr[j] = arr[j+1] arr[j+1] = temp } } } }


选择排序

//每轮将数组中最小的值往前排
function
selectSort(arr){ for(var i = 0; i < arr.length - 1; i ++ ){ //定义最小索引基值 var minIndex = i; for(var j = i; j < arr.length; j++ ){ if(arr[j] < arr[minIndex]){ minIndex = j } } //交换位置 var temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp } }

插入排序

function insertionSort(arr){
   let len = arr.length;
  for(let i = 0; i < len -1; i++){
    let insert = arr[i+1];
    let index = i + 1;
    for(let j = 0; j >=0;j--){
      if(arr[j]> insert){
        arr[j+1] = arr[j]
        index = j
      }
    }
  arr[index] = insert
  }
  return arr }

快速排序

functiion quickSort(arr){
    function _quickSort(arr,start,end){
        if(start > end || start > arr.length) return;
        var key = arr[end];
        var low = start,
            high = end;
       while(low < high){
           //当开始的索引值小于基准值继续往右查找,当大于基准值的时候把这位数组索引值赋给最后一位停止查找
           while(low < high && arr[low] < key) low ++
           arr[high] = arr[low]
           //当最后的索引值大于基准值继续往左查找,当小于基准值的时候把这位数组索引值赋给开头这位停止查找
           while(low < high && arr[high] > key) high --
           arr[low] = arr[high]
       }  
          arr[low] = key;
          _quickSort(arr,0,low -1);
          _quickSort(arr,low +1 , end)
    }
    _quickSort(arr,0,arr.length - 1)
}

 

posted @ 2020-06-16 15:20  心之所指,行之所至  阅读(148)  评论(0)    收藏  举报