關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。

westlife發表於2017-12-18

1.水桶排序;

關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。

原理:首先找到arr這個陣列中的最大項 max(此處為88),然後建立一個新的陣列bucket,bucket陣列長度為max,然後for迴圈遍歷,在bucket的索引為arr[i]的新增資料,可以新增字元"water";然後建立一個新的空陣列arr2;給陣列arr2增加bucket資料。

程式碼如下。

var arr = [19,8,47,34,78,95,64,22,50,88];
    var max = Math.max.apply(false,arr);//找出arr陣列中的最大值
    var bucket = new Array(max);//建立水桶陣列,給陣列新增“water”字元
    for(var i = 0;i<arr.length;i++){
      bucket[arr[i]] = "water";
    }
    var arr2 = []; //建立一個空陣列。
    for(var i in bucket){ //遍歷讓bucket的選項新增到arr2陣列中
      arr2.push(parseInt(i))
    }
    console.log(arr2)複製程式碼

2.氣泡排序:

生活原理:

關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。

如上圖:五個人排隊,按高矮順序排;老師說更高的往後站,兩兩同學相比較,ps(假設小明和小紅比,小明更高往後站,小張比小明高,他們位置不用換)第一次比較可以排出班級第一高的人,第二次比較可以找出第二高的人

js思路:找出陣列中的最大值,排好序,接著排第二位,然後第三位。。。。。。。。

程式碼如下複製程式碼

關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。

3.選擇排序

關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。

生活原理:假設小明是最矮的;然後通過比較,發現二狗要比小明矮,就和小明換位置,兩兩比較,通過第一次比較可以找出二狗是最矮的人,然後假設隊伍的第二個人是最矮的,讓他和剩下的人比較身高,依次找出其他人的位置。

js思路:假想陣列中的任意一個值是最小;然後通過比較兩兩比較,找出索引值,換位,然後賦值。關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。

4.快速排序

關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。

生活原理:假設小張(中間位置)是最矮的,比小張矮的往小張左邊站,比小張高的往右邊站;然後左邊的人群再次比較,右邊的人群再次比較身高,最後左邊的人+小張+右邊的人就是高矮順序。

js原理:取陣列的中間值,比較該值和其他陣列的值,大於放到right陣列中,小於放在left陣列中;然後遞迴繼續給陣列排序

關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。

5.插入排序

插入排序的原理比較好理解,就像玩鬥地主一樣,抽到第一張牌,以它為中界值,比第一張牌小的往左邊放,比第一張大的往右邊放。第三張繼續往前面兩張插,依次插入所有的牌

js原理:以第一個為基點,分別插入後面的值。

關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。

6.希爾排序:

生活原理:假設一個班的人成績固定,智商註定了成績,這個班的人實施了班級互助,比如一個班級有10排,1排的和6排的人成為學習小組,2排和7排成為學習小組,依次類推,然後考試成績出來了,兩個學習小組之間互相比較,成績高的往前坐,成績差的往後坐(現在有個大概的排名了),然後再次考試,1排和3排成為學習小組,2排和5排成為學習小組(成績好壞與座位更加趨近了),再次考試,1排和2排是學習小組。3和4是學習小組,依次,再次考試,再次排位置,此時的位置和成績就是正相關了------------ps(委屈臉,不符合生活邏輯,強行解釋一波,這個老師怕傷害孩子自尊,所以採取了這樣的排法,哈哈,這就是保護孩子自尊的方法,滑稽臉.gif)

js原理:將待排序的序列分為若干組,在每組內進行直接插入排序,以使整個序列基本有序,然後再對整個序列進行直接插入排序。

關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。





相關文章