บทความนี้แบ่งปันอัลกอริทึมการเรียงลำดับที่ใช้กันทั่วไปกับคุณสำหรับการใช้งาน JS เนื้อหาเฉพาะมีดังนี้
1. การเรียงลำดับฟอง
var bubblesort = function (arr) {var flag = true; var len = arr.length; สำหรับ (var i = 0; i <len - 1; i ++) {flag = true; สำหรับ (var j = 0; j <len - 1 - i; j ++) {ถ้า (arr [j]> arr [j+1]) {var temp = arr [j+1]; arr [j+1] = arr [j]; arr [j] = อุณหภูมิ; ธง = เท็จ; }} ถ้า (ธง) {break; -2. เลือกเรียงลำดับ
var selectsort = function (arr) {var min; สำหรับ (var i = 0; i <arr.length-1; i ++) {min = i; สำหรับ (var j = i+1; j <arr.length; j ++) {ถ้า (arr [min]> arr [j]) {min = j; }} ถ้า (i! = min) {swap (arr, i, min); }}}; การแลกเปลี่ยนฟังก์ชั่น (arr, index1, index2) {var temp = arr [index1]; arr [index1] = arr [index2]; arr [index2] = temp;};3. แทรกเรียงลำดับ
var insertSort = function (arr) {var len = arr.length, key; สำหรับ (var i = 1; i <len; i ++) {var j = i; key = arr [j]; ในขณะที่ (-J> -1) {ถ้า (arr [j]> คีย์) {arr [j + 1] = arr [j]; } else {break; }} arr [j + 1] = key; -4. Hill จัดเรียง
var shellsort = function (arr) {var gaps = [5, 3, 1]; สำหรับ (var g = 0; g <gaps.length; ++ g) {สำหรับ (var i = gaps [g]; i <arr.length; ++ i) {var temp = arr [i]; สำหรับ (var j = i; j> = gaps [g] && arr [j - gaps [g]]> temp; j - = gaps [g]) {arr [j] = arr [j - gaps [g]]; } arr [j] = temp; -5. การสั่งซื้อ
ฟังก์ชั่น mergesort (arr) {if (arr.length <2) {return; } var step = 1; var ซ้ายขวา; ในขณะที่ (ขั้นตอน <arr.length) {left = 0; ถูกต้อง = ขั้นตอน; ในขณะที่ (ขวา + step <= arr.length) {mergearrays (arr, ซ้าย, ซ้าย + ขั้นตอน, ขวา, ขวา + ขั้นตอน); ซ้าย = ขวา + ขั้นตอน; ขวา = ซ้าย + ขั้นตอน; } if (ขวา <arr.length) {mergearrays (arr, ซ้าย, ซ้าย + ขั้นตอน, ขวา, arr.length); } ขั้นตอน *= 2; }} ฟังก์ชั่น mergearrays (arr, startleft, stopleft, startright, startright) {var rightarr = array ใหม่ (stotright - startright + 1); var leftarr = อาร์เรย์ใหม่ (Stopleft - startleft + 1); k = startright; สำหรับ (var i = 0; i <(rightarr.length - 1); ++ i) {rightarr [i] = arr [k]; ++ k; } k = startleft; สำหรับ (var i = 0; i <(leftarr.length - 1); ++ i) {leftarr [i] = arr [k]; ++ k; } rightarr [rightarr.length - 1] = อินฟินิตี้; // ค่า Sentinel leftarr [leftarr.length - 1] = ไม่มีที่สิ้นสุด; // ค่า Sentinel var m = 0; var n = 0; สำหรับ (var k = startleft; k <stopright; ++ k) {ถ้า (leftarr [m] <= rightarr [n]) {arr [k] = leftarr [m]; M ++; } else {arr [k] = rightarr [n]; n ++; -6. จัดเรียงอย่างรวดเร็ว
var Quicksort = function (arr, ซ้าย, ขวา) {var i, j, t, pivot; if (ซ้าย> = ขวา) {return; } pivot = arr [ซ้าย]; i = ซ้าย; j = ขวา; ในขณะที่ (i! = j) {ในขณะที่ (arr [j]> = pivot && i <j) {j--; } ในขณะที่ (arr [i] <= pivot && i <j) {i ++; } if (i <j) {t = arr [i]; arr [i] = arr [j]; arr [j] = t; }} arr [ซ้าย] = arr [j]; arr [j] = pivot; Quicksort (arr, ซ้าย, i - 1); Quicksort (arr, i + 1, ขวา);}สรุป: การเปรียบเทียบประสิทธิภาพของอัลกอริทึม:
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น