原文引用自這裡,這裡只是我自己的學習的補充以及筆記時間複雜度,o(n2)
var arr = [5, 6, 3, 1, 8, 7, 2, 4];
function
insertsort
(arr) else
}} return arr;
}console.log(insertsort(arr));
時間複雜度,o(n2)
var arr = [5, 1, 6, 3, 1, 8, 7, 2, 4];
function
selectsort
(arr)
}// 當b的第乙個數字不是最小的值的時候,才進行交換
if (minindex !== i)
} return arr;
}console.log('選擇排序' + selectsort(arr2));
時間複雜度,o(nlogn)
function
merge
(arrleft, arrright) else
} // 當left和right中其中有乙個率先排序完成,剩餘的還未push進newarr的陣列就直接連線到temp中
return
newarr.concat(arrleft, arrright);
}// 拆分
function
mergesort
(arr)
var mid = math.
floor(arr.
length / 2), // 平均分配兩個陣列,使用floor是因為保證前乙個陣列都是偶數,假如有奇數個數字,只會留在最後
left = arr.slice(0, mid),
right = arr.slice(mid);
return merge(mergesort(left), mergesort(right));
}console.log('歸併排序' + mergesort(arr3));
時間複雜度,o(n2)
var arr4 = [5, 1, 6, 3, 1, 8, 7, 2, 4];
// 氣泡排序
function
bubblesort
(arr)
}} return arr;
}console.log('氣泡排序' + bubblesort(arr4));
時間複雜度,o(nlogn)
var arr5 = [5, 1, 6, 3, 1, 8, 7, 6, 2, 4];
// 快速排序
function
quicksort
(arr)
function
partition
(arr, left, right)
}// 找到標準值最後的位置之後,把標準值放置過來
swap(arr, index, right);
return index;
} function
sort
(arr, left, right)
var index = partition(arr, left, right);
sort(arr, left, index - 1);
sort(arr, index + 1, right);
} sort(arr, 0, arr.length - 1);
return arr;
}console.log('快速排序' + quicksort(arr5));
JS實現排序演算法
目錄 一 氣泡排序 方法名 sortarr 功能介紹 對陣列進行排序 冒泡演算法 arguments arr 必輸項 需要排序的陣列 action 非必輸項 up 公升序,down 降序 預設 let sortarr function arr,action 空陣列或者陣列1個元素,不需要排序直接跳出...
排序演算法(js實現)
氣泡排序 兩兩比較,遍歷一趟會挑出最大的值放在最後。function bubblesort arr return arr 選擇排序 從頭至尾掃瞄序列,每次找出最小的乙個元素,和第乙個元素交換,接著從剩下的元素中繼續這種選擇和交換方式,最終得到乙個有序序列。function selectsort ar...
js實現排序演算法
系統整理一下排序演算法。氣泡排序實質是小 大 的元素往前 後 調。進行n 1輪對比,每輪對比將最後乙個元素進行冒泡 排序 即每輪對比將最後乙個元素排出 每輪中的最大或最小 隨後將泡泡 排出元素 排除,進行下一次迭代對比,直到沒有元素可交換為止。這種方式通過多次迭代陣列來完成操作,不管是平均還是最壞的...