當前位置:才華齋>設計>網頁設計>

深入理解JS實現快速排序和去重javascript技巧

網頁設計 閱讀(8.77K)

JS的快速排序和JS去重在面試的時候問的挺多的.下面是我對快速排序的理解,和快速排序,去重的程式碼.

深入理解JS實現快速排序和去重javascript技巧

  1.什麼是快速排序?

第一步: 快速排序就是去箇中間值,把比中間值小的放在左邊設為arrLeft,比中間值大的放在右邊設為arrRight

第二步: 對arrLeft進行第一步,對arrRight進行第一步.(明顯是一個遞迴嘛,當陣列的長度小於2的時候結束)

第三步: 合併arrLeft,中間值,arrRight

quickSort = function(arr){if(th < ){return arr;}var tmp = ce(r(th/), )[],arrLeft = [],arrRight = [];for(var i = ; i < th; i++){if(arr[i] >= tmp){(arr[i]);}else{(arr[i]);}}return ee(arrLeft)at(tmp,ee(arrRight));}

  的去重?

大家第一個想到的應該是,迴圈一次陣列,每取到一個值就與後面的比較,如果沒有相同的就放入一個新數組裡面,這樣就去重了

第一種

var unique = function(arr){var newArr = [];while(th){var value = t();for(var i = , len = th; i<len; i++){if(value==arr[i]){break;}}if(i==len){(value);}}return newArr;}

但是這樣迴圈了二次,效率不好.下面提供的較好,宣告一個物件,陣列的'值作為物件的屬性並賦值為一,然後判斷這個物件屬性是否存在就行了

第二種

var unique = function(arr){var arr = [];var obj = {};for(var i = , len = th; i < len; i++){if(!obj[a[i]]){obj[a[i]] = ;(a[i]);}}(obj)return arr;};

還有一種就是排序並去重 ,這種就更加容易了.判斷前面一個值是不是等於後面一個值如果相等,往後移動一位就行了

第三種

var unique = function(arr){var newArr = [];for(var i = , len = th; i<len; i++){if(arr[i] !==arr[i+]){(arr[i]);}if(i==len){(arr[i]);}}return newArr;}

以上所述是小編給大家介紹的JS實現快速排序和去重,希望對大家有所幫助,如果大家有任何疑問請給我們留言,小編會及時回覆大家的。在此也非常感謝大家對的支援!