วีดีโอ: มีอัลกอริธึมการเรียงลำดับที่ฝากข้อมูลหรือไม่
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
ไม่ มันไม่ใช่การ- สถานที่ การเรียงลำดับ อัลกอริทึม . ความคิดทั้งหมดคือการป้อนข้อมูลนั้น เรียงลำดับ ตัวเองในขณะที่พวกเขาถูกย้ายไปที่ ถัง . ในกรณีที่เลวร้ายที่สุด (ค่าตามลำดับ แต่ไม่มีการซ้ำซ้อน) พื้นที่เพิ่มเติมที่ต้องการจะใหญ่เท่ากับอาร์เรย์ดั้งเดิม
ด้วยวิธีนี้ มีอัลกอริธึมการเรียงลำดับใดบ้าง
อีกตัวอย่างหนึ่ง อัลกอริธึมการเรียงลำดับหลายๆ การเรียงลำดับฟอง , เรียงหวี, เรียงลำดับการเลือก, การเรียงลำดับการแทรก , heapsort และ การเรียงลำดับเชลล์ อัลกอริทึมเหล่านี้ต้องการตัวชี้เพียงไม่กี่ตัว ดังนั้นความซับซ้อนของพื้นที่คือ O(log n) Quicksort ดำเนินการแทนที่ข้อมูลที่จะจัดเรียง
ต่อมา คำถามคือ อัลกอริธึมการเรียงลำดับแบบบัคเก็ตทำงานอย่างไร? การจัดเรียงถัง , หรือ ถังขยะ , คือ อัลกอริทึมการเรียงลำดับ นั่น ผลงาน โดยการกระจายองค์ประกอบของอาร์เรย์เป็นจำนวน ถัง . แต่ละ ถัง เป็นแล้ว จัดเรียง เป็นรายบุคคลไม่ว่าจะใช้แตกต่างกัน อัลกอริทึมการเรียงลำดับ , หรือโดยการใช้. ซ้ำๆ อัลกอริทึมการเรียงลำดับถัง . ตั้งค่าอาร์เรย์ของว่างในตอนแรก " ถัง ".
ดังนั้นคุณจะใช้อัลกอริธึมการเรียงลำดับที่ฝากข้อมูลได้อย่างไร
- สมมติว่าอาร์เรย์อินพุตคือ: สร้างอาร์เรย์ขนาด 10
- แทรกองค์ประกอบลงในที่เก็บข้อมูลจากอาร์เรย์ องค์ประกอบถูกแทรกตามช่วงของที่เก็บข้อมูล
- องค์ประกอบของแต่ละบัคเก็ตจะถูกจัดเรียงโดยใช้อัลกอริธึมการเรียงลำดับที่เสถียร
- รวบรวมองค์ประกอบจากแต่ละถัง
การจัดเรียงถังใช้ที่ไหน
การจัดเรียงถัง มีประโยชน์อย่างยิ่งเมื่ออินพุตถูกกระจายอย่างสม่ำเสมอในช่วง ตัวอย่างเช่น พิจารณาปัญหาต่อไปนี้ เรียงลำดับ ชุดเลขทศนิยมชุดใหญ่ซึ่งอยู่ในช่วงตั้งแต่ 0.0 ถึง 1.0 และกระจายอย่างสม่ำเสมอตลอดช่วง