คำถามติดแท็ก quicksort


6
เหตุใดวิธี Arrays.sort ของ Java จึงใช้อัลกอริธึมการเรียงลำดับที่แตกต่างกันสองแบบสำหรับประเภทต่างๆ
Arrays.sortวิธีการของ Java 6 ใช้ Quicksort สำหรับอาร์เรย์ของ primitives และผสานการเรียงลำดับสำหรับอาร์เรย์ของวัตถุ ฉันเชื่อว่า Quicksort ส่วนใหญ่เร็วกว่าการจัดเรียงแบบผสานและใช้หน่วยความจำน้อยกว่า การทดลองของฉันสนับสนุนแม้ว่าอัลกอริทึมทั้งสองจะเป็น O (n log (n)) เหตุใดจึงใช้อัลกอริทึมที่แตกต่างกันสำหรับประเภทต่างๆ

11
เหตุใดเครื่องมือด่วนแบบมินิมอลเช่น Haskell จึงไม่ใช่ Quicksort ที่ "จริง"
เว็บไซต์ของ Haskell แนะนำฟังก์ชัน Quicksort 5 บรรทัดที่น่าสนใจมากดังที่แสดงด้านล่าง quicksort [] = [] quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater) where lesser = filter (< p) xs greater = filter (>= p) xs พวกเขายังรวมถึง"ทรู quicksort ใน C" // To sort array a[] of size n: qsort(a,0,n-1) void qsort(int a[], int …

13
Quicksort: การเลือกเดือย
เมื่อใช้ Quicksort สิ่งหนึ่งที่คุณต้องทำคือการเลือกเดือย แต่เมื่อฉันดู pseudocode เช่นเดียวกับด้านล่างมันไม่ชัดเจนว่าฉันควรเลือก pivot อย่างไร องค์ประกอบแรกของรายการ? อื่น ๆ อีก? function quicksort(array) var list less, greater if length(array) ≤ 1 return array select and remove a pivot value pivot from array for each x in array if x ≤ pivot then append x to less else append x …

12
Quicksort vs heapsort
ทั้ง Quicksort และ heapsort ทำการเรียงลำดับในสถานที่ แบบไหนดีกว่ากัน? แอปพลิเคชันและกรณีใดบ้างที่เป็นที่ต้องการ

30
Quicksort ด้วย Python
ฉันใหม่มากกับ python และฉันกำลังพยายามใช้ Quicksort ในนั้น ใครช่วยกรุณาช่วยฉันกรอกรหัสได้ไหม ฉันไม่รู้ว่าจะเชื่อมอาร์เรย์ทั้งสามเข้าด้วยกันและพิมพ์ได้อย่างไร def sort(array=[12,4,5,6,7,3,1,15]): less = [] equal = [] greater = [] if len(array) > 1: pivot = array[0] for x in array: if x < pivot: less.append(x) if x == pivot: equal.append(x) if x > pivot: greater.append(x) sort(less) sort(pivot) sort(greater)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.