Back to Home

ការតម្រៀប​បែប​គំនរ

បច្ចេកទេស​តម្រៀប​ផ្អែក​លើ​ការ​ប្រៀបធៀប​ដែល​ផ្អែក​លើ​រចនាសម្ព័ន្ធ​ទិន្នន័យ Binary Heap។ វា​ស្រដៀង​នឹង​ការ​តម្រៀប​បែប​ជ្រើសរើស។

Visualization

Step 1 / 17
Speed:

Details

Analogy

ពិចារណា​ពី​แผนผังองค์กร​តាម​ລำดับชั้น​ของ​បริษัท​ដែល​មី​โครงสร้าง​เป็น 'max heap' ដែល​ผู้จัดการ​ทุกคน​មี​រายได้​มากกว่า​ผู้ใต้បັง​คับบัญชา​โดยตรง​ของ​ตন។ CEO ที่​อยู่​ด้านบน​สุด​คือ​ผู้​ที่​មี​រายได้​สูงสุด។ คุณ 'ลบ' CEO ออก เลื่อน​ตำแหน่ง​ผู้​ที่​មี​រายได้​สูงสุด​คน​ถัดไป และ​จัດระเบียบ​แผนผัง​ใหม่​เพื่อ​หา​ผู้​ที่​មี​រายได้​สูงสุด​คน​ถัดไป ทำ​ซ้ำ​จนกว่า​ทุกคน​จะ​ถูก​จัด​เรียง​ตาม​เงินเดือน។

Purpose

ដើម្បី​តម្រៀប​អារេ​ដោយ​ដំបូង​បង្កើត max heap ពី​ទិន្នន័យ បន្ទាប់​មក​ដក​ធាតុ​ធំ​បំផុត​ចេញ​ពី heap ម្ដង​ហើយ​ម្ដង​ទៀត ហើយ​ដាក់​វា​នៅ​ចុង​ផ្នែក​ដែល​បាន​តម្រៀប។

Use Cases

มีประโยชน់​เมื่อ​ต้องการ​ประสิทธิภาพ​กรณี​เลวร้าย​ที่สุด​ที่​รับประกัน O(n log n)។ มัน​ไม่​เสถียร และ​โดย​ทั่วไป​แล้ว​จะ​ช้า​กว่า Quick Sort ที่​実装​อย่าง​ดี​ใน​ทาง​ปฏิบัติ។

Algorithm Steps

Line 1
1
build max heap from array
2
for i = n-1 to 1:
3
swap arr[0] with arr[i]
4
heapify(arr, 0, i)
5
6
function heapify(arr, i, size):
7
largest = i
8
left = 2*i + 1
9
right = 2*i + 2
10
if left < size and arr[left] > arr[largest]:
11
largest = left
12
if right < size and arr[right] > arr[largest]:
13
largest = right
14
if largest != i:
15
swap arr[i] with arr[largest]
16
heapify(arr, largest, size)
Current
Executed
Pending

Explanation

What's Happening?

Step 1/17

អារេដំបូង។ ចាប់ផ្តើមสร้าง max heap។

Updates with each step • Clickfor full view

Code Implementation

def heap_sort(arr):
    n = len(arr)
    for i in range(n // 2 - 1, -1, -1):
        heapify(arr, n, i)
    for i in range(n - 1, 0, -1):
        arr[i], arr[0] = arr[0], arr[i]
        heapify(arr, i, 0)
    return arr

def heapify(arr, n, i):
    largest = i
    l = 2 * i + 1
    r = 2 * i + 2
    if l < n and arr[l] > arr[largest]:
        largest = l
    if r < n and arr[r] > arr[largest]:
        largest = r
    if largest != i:
        arr[i], arr[largest] = arr[largest], arr[i]
        heapify(arr, n, largest)
ការតម្រៀប​បែប​គំនរ - Interactive Visualization | AlgoViz | AlgoViz