มีอัลกอริธึมการเรียงลำดับที่ฝากข้อมูลหรือไม่
มีอัลกอริธึมการเรียงลำดับที่ฝากข้อมูลหรือไม่

วีดีโอ: มีอัลกอริธึมการเรียงลำดับที่ฝากข้อมูลหรือไม่

วีดีโอ: มีอัลกอริธึมการเรียงลำดับที่ฝากข้อมูลหรือไม่
วีดีโอ: วิทยาการคำนวณ EP5 การแสดงลำดับขั้นตอน อัลกอริทึม Algorithms(Computational thinking)หลงทางในสวนสัตว์ 2024, อาจ
Anonim

ไม่ มันไม่ใช่การ- สถานที่ การเรียงลำดับ อัลกอริทึม . ความคิดทั้งหมดคือการป้อนข้อมูลนั้น เรียงลำดับ ตัวเองในขณะที่พวกเขาถูกย้ายไปที่ ถัง . ในกรณีที่เลวร้ายที่สุด (ค่าตามลำดับ แต่ไม่มีการซ้ำซ้อน) พื้นที่เพิ่มเติมที่ต้องการจะใหญ่เท่ากับอาร์เรย์ดั้งเดิม

ด้วยวิธีนี้ มีอัลกอริธึมการเรียงลำดับใดบ้าง

อีกตัวอย่างหนึ่ง อัลกอริธึมการเรียงลำดับหลายๆ การเรียงลำดับฟอง , เรียงหวี, เรียงลำดับการเลือก, การเรียงลำดับการแทรก , heapsort และ การเรียงลำดับเชลล์ อัลกอริทึมเหล่านี้ต้องการตัวชี้เพียงไม่กี่ตัว ดังนั้นความซับซ้อนของพื้นที่คือ O(log n) Quicksort ดำเนินการแทนที่ข้อมูลที่จะจัดเรียง

ต่อมา คำถามคือ อัลกอริธึมการเรียงลำดับแบบบัคเก็ตทำงานอย่างไร? การจัดเรียงถัง , หรือ ถังขยะ , คือ อัลกอริทึมการเรียงลำดับ นั่น ผลงาน โดยการกระจายองค์ประกอบของอาร์เรย์เป็นจำนวน ถัง . แต่ละ ถัง เป็นแล้ว จัดเรียง เป็นรายบุคคลไม่ว่าจะใช้แตกต่างกัน อัลกอริทึมการเรียงลำดับ , หรือโดยการใช้. ซ้ำๆ อัลกอริทึมการเรียงลำดับถัง . ตั้งค่าอาร์เรย์ของว่างในตอนแรก " ถัง ".

ดังนั้นคุณจะใช้อัลกอริธึมการเรียงลำดับที่ฝากข้อมูลได้อย่างไร

  1. สมมติว่าอาร์เรย์อินพุตคือ: สร้างอาร์เรย์ขนาด 10
  2. แทรกองค์ประกอบลงในที่เก็บข้อมูลจากอาร์เรย์ องค์ประกอบถูกแทรกตามช่วงของที่เก็บข้อมูล
  3. องค์ประกอบของแต่ละบัคเก็ตจะถูกจัดเรียงโดยใช้อัลกอริธึมการเรียงลำดับที่เสถียร
  4. รวบรวมองค์ประกอบจากแต่ละถัง

การจัดเรียงถังใช้ที่ไหน

การจัดเรียงถัง มีประโยชน์อย่างยิ่งเมื่ออินพุตถูกกระจายอย่างสม่ำเสมอในช่วง ตัวอย่างเช่น พิจารณาปัญหาต่อไปนี้ เรียงลำดับ ชุดเลขทศนิยมชุดใหญ่ซึ่งอยู่ในช่วงตั้งแต่ 0.0 ถึง 1.0 และกระจายอย่างสม่ำเสมอตลอดช่วง