基本排序算法

一.插入排序
算法描述:

  1. 從第一個元素開始,該元素可以認為已經(jīng)被排序
  2. 取出下一個元素,在已經(jīng)排序的元素序列中從后向前掃描
  3. 如果該元素(已排序)大于新元素,將該元素移到下一位置
  4. 重復(fù)步驟 3,直到找到已排序的元素小于或者等于新元素的位置
  5. 將新元素插入到該位置后
  6. 重復(fù)步驟 2~5
function insertSort(arr){
      var temp;
       for(var i = 0; i< arr.length; i++){
            temp = arr[i];
             for(var j = i; j> 0; j--){
                  if(temp < arr[j-1]){
                        arr[j] = arr[]j-1]
                  }else{
                        arr[j] = temp;
                        break;
                  }
              }
      }
      return arr;
}

二.選擇排序
算法描述:直接從待排序數(shù)組中選擇一個最?。ɑ蜃畲螅?shù)字,放入新數(shù)組中。
編程思路:先假設(shè)第一個元素為最小的,然后通過循環(huán)找出最小元素,然后同第一個元素交換,接著假設(shè)第二個元素,重復(fù)上述操作即可。

function inserSort(arr){
      var minIndex,minValue;
      for(var i = 0; i<arr.length - 1; i++){
            minIndex = i;
            minValue = arr[minIndex];
            for(var j = i+1; j<arr.length; j++){
                   if(arr[j] < minValue){
                           minIndex = j;
                           minValue = arr[minIndex];
                    }
            }
            var temp = arr[i];
            arr[i] = minValue;
            arr[minIndex] = temp;
      }
      return arr;
}

三.冒泡排序
算法描述:

  1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  2. 對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對。在這一點,最后的元素應(yīng)該會是最大的數(shù)。
  3. 針對所有的元素重復(fù)以上的步驟,除了最后一個。
  4. 持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。
function insertSort(arr){
    for(var i = 0; i<arr.length; i++){
        for(var j = i; j<arr.length; j++){
            if(arr[j] < arr[j+1]){
                var temp = arr[j];
                arr[j] = arr[j+1];
                arr[j + 1] = temp;  
            }
        }
    }
    return arr;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本篇主要實現(xiàn)九(八)大排序算法,分別是冒泡排序,插入排序,選擇排序,希爾排序,歸并排序,快速排序,堆排序,計數(shù)排序...
    EINDEX閱讀 1,327評論 5 14
  • 文章大綱:1.總體排序算法對比圖2.9種排序算法介紹 冒泡排序 算法描述 冒泡排序是一個平均時間復(fù)雜度為O(n^2...
    檸檬烏冬面閱讀 4,263評論 0 73
  • 排序算法是最基本最常用的算法,不同的排序算法在不同的場景或應(yīng)用中會有不同的表現(xiàn),我們需要對各種排序算法熟練才能將它...
    若丶天下閱讀 484評論 0 1
  • 1. 簡介 排序與我們?nèi)粘I钪邢⑾⑾嚓P(guān),比如,我們要從電話簿中找到某個聯(lián)系人首先會按照姓氏排序、買火車票會按照出...
    DraculaWong閱讀 394評論 0 0
  • 26歲,你看著身邊的人都結(jié)了婚 婚禮的份子錢逐年遞增 春節(jié)回家,父母從帶你串親戚 變成了帶你去見相親對象 見了十幾...
    一點都不酷_67a1閱讀 631評論 0 0

友情鏈接更多精彩內(nèi)容