前言
這是一個純粹的個人復習與加深對JS的排序認識的日志,我將從實現(xiàn)原生JS的sort方法開始復習,然后實現(xiàn)快速排序法,插入排序法,冒泡排序法等
重寫原生JS的sort排序
function sort (arr, compare) {
if (compare === undefined) {
var compare = function(a, b) {
return String(a) > String(b) ? 1 : String(a) < String(b) ? -1 : 0;
}
}
for (var r = 0; r < arr.length; r++) {
for (var i = 0; i < arr.length - r; i++) {
if (compare(arr[i], arr[i+1]) > 0) {
var temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
return arr;
}
這段代碼大概實現(xiàn)了sort的升序,compare可以是自定義的比較函數(shù),在這里面如何對數(shù)組進行