เมนูนำทาง
ฮีปซอร์ต ตัวอย่างให้ { 6, 5, 3, 1, 8, 7, 2, 4 } เป็นลิสต์ เราต้องการเรียงสมาชิกของลิสต์นี้จากน้อยที่สุดไปมากที่สุด[6]
ตัวอย่างฮีปซอร์ตฮีป | สมาชิกใหม่ใส่เข้าไปในฮีป | สลับ (swap) สมาชิก |
---|---|---|
NULL (ว่างเปล่า) | 6 | |
6 | 5 | |
6, 5 | 3 | |
6, 5, 3 | 1 | |
6, 5, 3, 1 | 8 | |
6, 5, 3, 1, 8 | 5, 8 | |
6, 8, 3, 1, 5 | 6, 8 | |
8, 6, 3, 1, 5 | 7 | |
8, 6, 3, 1, 5, 7 | 3, 7 | |
8, 6, 7, 1, 5, 3 | 2 | |
8, 6, 7, 1, 5, 3, 2 | 4 | |
8, 6, 7, 1, 5, 3, 2, 4 | 1, 4 | |
8, 6, 7, 4, 5, 3, 2, 1 |
ฮีป | สลับ (swap) สมาชิก | ลบ (delete) สมาชิก | อาร์เรย์ที่จัดเรียงแล้ว | ข้อมูล |
---|---|---|---|---|
8, 6, 7, 4, 5, 3, 2, 1 | 8, 1 | สลับ 8 และ 1 เพื่อลบ 8 จาก heap | ||
1, 6, 7, 4, 5, 3, 2, 8 | 8 | ลบ 8 จาก heap และเพิ่มไปยังอาร์เรย์ที่เรียงแล้ว | ||
1, 6, 7, 4, 5, 3, 2 | 1, 7 | 8 | สลับ 1 และ 7 เนื่องจากพวกมันเรียงลำดับอย่างไม่ถูกต้องในฮีป | |
7, 6, 1, 4, 5, 3, 2 | 1, 3 | 8 | สลับ 1 และ 3 เนื่องจากพวกมันเรียงลำดับอย่างไม่ถูกต้องในฮีป | |
7, 6, 3, 4, 5, 1, 2 | 7, 2 | 8 | สลับ 7 และ 2 เพื่อลบ 7 จาก heap | |
2, 6, 3, 4, 5, 1, 7 | 7 | 8 | ลบ 7 จาก heap และเพิ่มไปยังอาร์เรย์ที่เรียงแล้ว | |
2, 6, 3, 4, 5, 1 | 2, 6 | 7, 8 | สลับ 2 และ 6 เนื่องจากพวกมันเรียงลำดับอย่างไม่ถูกต้องในฮีป | |
6, 2, 3, 4, 5, 1 | 2, 5 | 7, 8 | สลับ 2 และ 5 เนื่องจากพวกมันเรียงลำดับอย่างไม่ถูกต้องในฮีป | |
6, 5, 3, 4, 2, 1 | 6, 1 | 7, 8 | สลับ 6 และ 1 เพื่อลบ 6 จาก heap | |
1, 5, 3, 4, 2, 6 | 6 | 7, 8 | ลบ 6 จาก heap และเพิ่มไปยังอาร์เรย์ที่เรียงแล้ว | |
1, 5, 3, 4, 2 | 1, 5 | 6, 7, 8 | สลับ 1 และ 5 เนื่องจากพวกมันเรียงลำดับอย่างไม่ถูกต้องในฮีป | |
5, 1, 3, 4, 2 | 1, 4 | 6, 7, 8 | สลับ 1 และ 4 เนื่องจากพวกมันเรียงลำดับอย่างไม่ถูกต้องในฮีป | |
5, 4, 3, 1, 2 | 5, 2 | 6, 7, 8 | สลับ 5 และ 2 เพื่อลบ 5 จาก heap | |
2, 4, 3, 1, 5 | 5 | 6, 7, 8 | ลบ 5 จาก heap และเพิ่มไปยังอาร์เรย์ที่เรียงแล้ว | |
2, 4, 3, 1 | 2, 4 | 5, 6, 7, 8 | สลับ 2 และ 4 เนื่องจากพวกมันเรียงลำดับอย่างไม่ถูกต้องในฮีป | |
4, 2, 3, 1 | 4, 1 | 5, 6, 7, 8 | สลับ 4 และ 1 เพื่อลบ 4 จาก heap | |
1, 2, 3, 4 | 4 | 5, 6, 7, 8 | ลบ 4 จาก heap และเพิ่มไปยังอาร์เรย์ที่เรียงแล้ว | |
1, 2, 3 | 1, 3 | 4, 5, 6, 7, 8 | สลับ 1 และ 3 เนื่องจากพวกมันเรียงลำดับอย่างไม่ถูกต้องในฮีป | |
3, 2, 1 | 3, 1 | 4, 5, 6, 7, 8 | สลับ 3 และ 1 เพื่อลบ 3 จาก heap | |
1, 2, 3 | 3 | 4, 5, 6, 7, 8 | ลบ 3 จาก heap และเพิ่มไปยังอาร์เรย์ที่เรียงแล้ว | |
1, 2 | 1, 2 | 3, 4, 5, 6, 7, 8 | สลับ 1 และ 2 เนื่องจากพวกมันเรียงลำดับอย่างไม่ถูกต้องในฮีป | |
2, 1 | 2, 1 | 3, 4, 5, 6, 7, 8 | สลับ 2 และ 1 เพื่อลบ 2 จาก heap | |
1, 2 | 2 | 3, 4, 5, 6, 7, 8 | ลบ 2 จาก heap และเพิ่มไปยังอาร์เรย์ที่เรียงแล้ว | |
1 | 1 | 2, 3, 4, 5, 6, 7, 8 | ลบ 1 จาก heap และเพิ่มไปยังอาร์เรย์ที่เรียงแล้ว | |
1, 2, 3, 4, 5, 6, 7, 8 | เรียงสมบูรณ์ |
เมนูนำทาง
ฮีปซอร์ต ตัวอย่างใกล้เคียง
ฮีปซอร์ตแหล่งที่มา
WikiPedia: ฮีปซอร์ต https://www.inf.elte.hu/dstore/document/329/szabo_... https://www.geeksforgeeks.org/heap-sort/ https://en.wikipedia.org/wiki/File:Heapsort-exampl...