// js 利用sort進行排序
sort可以按照元素的字元編碼的順序進行排序,條件是此元素必須為字串。對於數字排序,定義規則是很重要的。(比較函式)
systemsort: function
(array) );
},
// 氣泡排序
bubblesort: function
(array) }}
return
array;
},
// 快速排序
注意地方:
遞迴函式的使用 splice返回乙個陣列 要在函式中設定判斷陣列是否為1
var quicksort = function
(arr)
var pivotindex = math.
floor(arr.
length / 2);
var pivot = arr.splice(pivotindex, 1)[0];
var left = ;
var right = ;
for (var i = 0; i
< arr.
length; i++)
else
}return quicksort(left).concat([pivot], quicksort(right));
};
// 插入排序
插入排序類似整理撲克牌,將每一張牌插到其他已經有序的牌中適當的位置。
插入排序由n-1趟排序組成,對於p=1到n-1趟,插入排序保證從位置0到位置p上的元素為已排序狀態。
簡單的說,就是插入排序總共需要排序n-1趟,從index為1開始,講該位置上的元素與之前的元素比較,放入合適的位置,這樣迴圈下來之後,即為有序陣列
insertsort: function
(array) else
}array[j + 1] = key;
}return
array;
},
// 希爾排序
把記錄按步長 gap 分組,對每組記錄採用直接插入排序方法進行排序。
隨著步長逐漸減小,所分成的組包含的記錄越來越多,當步長的值減小到 1 時,整個資料合成為一組,構成一組有序記錄,則完成排序
shellsort: function(array)
stepsort(steparr[i]);
}// 排序乙個步長
function
stepsort
(step) else
}array[tem + step] = key;}}
}return
array;
}
作為乙個前端工程師,對於和文字的熱情是高於演算法和邏輯的。但是,在資料大**的今天,對於資料的處理和其處理的方法的效率,也十分重要。(不得不學)
這兩天學完,其實是揹著默寫,但是,在不斷除錯bug的過程中,也逐漸被演算法的魅力所吸引。所以發幾個基礎的演算法和大家分享。
演算法基礎( 演算法)
演算法基礎 演算法 hash演算法有兩種,即sha 1和md5演算法這裡先介紹md5演算法.md5產生乙個128位的hash值,在經過一寫初始樹立後,將明文分成了512位的塊,再將每一塊分成16個32位的子塊。演算法的輸出是4個32位的塊,連線起來構成128位的hash值。首先,將訊息填充到比512...
演算法基礎 排序演算法
1.氣泡排序 原理有一列資料,從第乙個數開始,第乙個和第二個進行比較,如果第乙個大就交換,如果第二個大就不變,再第二個和第三個比較,一次類推,第二輪是從第乙個數開始比到倒數第二個數,第三輪是從第乙個數比到倒數第三個數.以此類推.def bubble nums for j in range len n...
演算法基礎 Hash演算法
hash,一般翻譯做 雜湊 也有直接音譯為 雜湊 的,就是把任意長度的輸入,通過雜湊演算法,變換成固定長度的輸出,該輸出就是雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,所以不可能從雜湊值來唯一的確定輸入值。簡單的說就是一種將任意長度的訊...