บทความนี้วิเคราะห์หลักการของวิธีการเรียงลำดับอาร์เรย์ใน JS แบ่งปันสำหรับการอ้างอิงของคุณ การวิเคราะห์เฉพาะมีดังนี้:
เมื่อเร็ว ๆ นี้ฉันได้ใช้การเรียงลำดับอาร์เรย์ในโครงการ Baidu แน่นอนฉันคิดถึงวิธีการเรียงลำดับของอาร์เรย์ในตอนแรก วิธีนี้ใช้งานง่ายมากโดยประมาณดังนี้:
การคัดลอกรหัสมีดังนี้: window.onload = function () {
var arr = [2,55,55,1,75,3,9,9,35,70,166,432,678,32,98];
var arr2 = ["George", "John", "Thomas", "James", "Adrew", "Martin"];
ฟังก์ชั่น arrrsort (a, b) {
return ab;
-
console.log (arr.sort (arrsort)); // การเรียงลำดับจำนวนต้องใช้ฟังก์ชัน หากคุณต้องการเรียงลำดับจากขนาดใหญ่ถึงเล็กให้กลับ BA;
console.log (arr2.sort ()); // ไม่จำเป็นต้องใช้ตัวอักษร
-
แต่ทันใดนั้นฉันก็คิดว่าทำไมการเรียงลำดับการใช้งานนั้นเรียบง่ายและหลักการของมันคืออะไร? ดังนั้นฉันจึงพยายามไม่จัดเรียงอาร์เรย์ด้วยการเรียงลำดับ หลักการคือการค้นหาค่าต่ำสุดของอาร์เรย์และแทรกลงในอาร์เรย์ใหม่จากนั้นลบค่าต่ำสุดในอาร์เรย์จากนั้นอัปเดตอาร์เรย์และค้นหาค่าต่ำสุดเพื่อแทรกต่อไป วงนี้มีดังนี้:
การคัดลอกรหัสมีดังนี้: window.onload = function () {
var arr = [2,55,55,1,75,3,9,9,35,70,166,432,678,32,98];
var len = arr.length;
console.log (arr.oin (","));
var newarr = [];
สำหรับ (var i = 0; i <len; i ++) {
newarr.push (math.min.apply (null, arr)); // แทรกค่าต่ำสุดลงในอาร์เรย์ใหม่
arr.splice (r (arr, math.min.apply (null, arr)), 1); // หลังจากแทรกให้ลบค่าต่ำสุดทันที
-
// ค้นหาตำแหน่งของค่าต่ำสุดในอาร์เรย์
ฟังก์ชั่น r (s, v) {
สำหรับ (k in s) {
if (s [k] == v) {
กลับ K;
-
-
-
console.log (newarr.join (","))
-
PS: นี่เป็นเพียงวิธีที่ฉันเขียน หลักการของการเรียงลำดับไม่ควรเป็นเช่นนี้ นอกจากนี้คุณยังสามารถเรียงลำดับอาร์เรย์โดยใช้วิธีฟอง ฉันจะไม่เขียนรหัส มีจำนวนมากบนอินเทอร์เน็ต แน่นอนรหัสข้างต้นเรียงลำดับอาร์เรย์ของตัวเลข สำหรับการเรียงลำดับของสตริงคุณสามารถพิจารณาวิธีการ localeCompare ของสตริง
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม JavaScript ของทุกคน