Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

วิธีการใช้การเรียงลำดับอย่างรวดเร็วใน JavaScript?


เรียงลำดับอย่างรวดเร็ว

การเรียงลำดับด่วนเป็นหนึ่งในวิธีการเรียงลำดับที่สำคัญที่สุดในจาวาสคริปต์ ใช้ค่าเดือย (ค่าสุ่ม) จากอาร์เรย์ องค์ประกอบอื่นๆ ทั้งหมดในอาร์เรย์แบ่งออกเป็น 2 หมวดหมู่ โดยอาจน้อยกว่าค่า pivot และมากกว่าค่า pivot

หลังจากนั้นแต่ละหมวดหมู่ (น้อยกว่าเดือยและมากกว่าเดือย) อยู่ภายใต้ขั้นตอนเดียวกันกับการเลือกเดือย จากนั้นแต่ละหมวดหมู่จะแบ่งออกเป็นหมวดหมู่ย่อย (น้อยกว่าเดือยและมากกว่าเดือย) .

ในที่สุด หมวดหมู่ย่อยจะถูกแบ่งออกในลักษณะที่อาจมีองค์ประกอบหรือไม่มีองค์ประกอบหากไม่มีองค์ประกอบอื่นที่จะเปรียบเทียบ ค่าที่เหลือจะแสดงเป็น pivot ที่จุดก่อนหน้าบางจุด และไม่ลดลงจนถึงหมวดหมู่ย่อยที่ต่ำที่สุดนี้

ตัวอย่าง

<html>
<body>
<script>
   function quickSort(originalArr) {
      if (originalArr.length <= 1) {
         return originalArr;
         } else {
               var leftArr = [];              
               var rightArr = [];
               var newArr = [];
               var pivot = originalArr.pop();      //  Take a pivot value
               var length = originalArr.length;
               for (var i = 0; i < length; i++) {
                  if (originalArr[i] <= pivot) {    // using pivot value start comparing
                     leftArr.push(originalArr[i]);      
               } else {
                       rightArr.push(originalArr[i]);
             }
           }
         return newArr.concat(quickSort(leftArr), pivot, quickSort(rightArr)); // array will be                                                                            //returned untill sorting occurs
      }
   }
   var myArray = [9, 0, 2, 7, -2, 6, 1 ];
   document.write("Original array: " + myArray);
   var sortedArray = quickSort(myArray);
   document.write("Sorted array: " + sortedArray);
</script>
</body>
</html>

ผลลัพธ์

Original array: 9,0,2,7,-2,6,1
Sorted array: -2,0,1,2,6,7,9