Back to Home

ការតម្រៀប​រហ័ស

ក្បួន​ដោះស្រាយ​ការ​តម្រៀប​ប្រកបដោយ​ប្រសិទ្ធភាព ដែល​ជា​វិធីសាស្ត្រ​ជា​ប្រព័ន្ធ​សម្រាប់​ដាក់​ធាតុ​នៃ​អារេ​តាម​លំដាប់​ដោយ​ប្រើ​ភីវត (pivot)។

Visualization

Step 1 / 13
Speed:

Details

Analogy

ស្រមៃ​ថា​គ្រូ​ម្នាក់​កំពុង​តម្រៀប​ក្រដាស​ប្រឡង​តាម​ពិន្ទុ។ គាត់​ជ្រើសរើស​ក្រដាស​មួយ (ភីវត) ឧទាហរណ៍​ពិន្ទុ 85។ បន្ទាប់​មក គាត់​បង្កើត​គំនរ​ពីរ៖ ក្រដាស​ដែល​មាន​ពិន្ទុ​ទាប​ជាង 85 និង​ក្រដាស​ដែល​មាន​ពិន្ទុ​ខ្ពស់​ជាង 85។ គាត់​ធ្វើ​បែប​នេះ​ដដែលៗ​លើ​គំនរ​តូច​ជាង​ពីរ​រហូត​ដល់​ក្រដាស​ទាំង​អស់​ត្រូវ​បាន​តម្រៀប។

Purpose

ដើម្បី​តម្រៀប​អារេ​ដោយ​ជ្រើសរើស​ធាតុ​មួយ​ជា​ភីវត ហើយ​បែងចែក​ធាតុ​ផ្សេង​ទៀត​ជា​ពីរ​អារេ​រង អាស្រ័យ​លើ​ថា​តើ​វា​តូច​ជាង ឬ​ធំ​ជាង​ភីវត។

Use Cases

មួយ​ក្នុង​ចំណោម​ក្បួន​ដោះស្រាយ​តម្រៀប​ប្រកបដោយ​ប្រសិទ្ធភាព​បំផុត​ក្នុង​ការ​ប្រើប្រាស់ ហើយ​ជា​ធម្មតា​លឿន​ជាង merge sort សម្រាប់​អារេ​តូច​ទៅ​មធ្យម។ ប្រើ​យ៉ាង​ទូលំទូលាយ​ក្នុង​បណ្ណាល័យ​ស្តង់ដារ។

Algorithm Steps

Line 1
1
function quickSort(arr, low, high):
2
if low < high:
3
pivot = partition(arr, low, high)
4
quickSort(arr, low, pivot-1)
5
quickSort(arr, pivot+1, high)
6
7
function partition(arr, low, high):
8
pivot = arr[high]
9
i = low - 1
10
for j = low to high-1:
11
if arr[j] < pivot:
12
i++
13
swap arr[i] with arr[j]
14
swap arr[i+1] with arr[high]
15
return i+1
Current
Executed
Pending

Explanation

What's Happening?

Step 1/13

អារេដំបូង។ តោះបែងចែកអារេទាំងមូល។ Pivot គឺ 70 (ធាតុចុងក្រោយ)។

Updates with each step • Clickfor full view

Code Implementation

def quick_sort(arr, low, high):
    if low < high:
        pi = partition(arr, low, high)
        quick_sort(arr, low, pi - 1)
        quick_sort(arr, pi + 1, high)

def partition(arr, low, high):
    pivot = arr[high]
    i = low - 1
    for j in range(low, high):
        if arr[j] < pivot:
            i += 1
            arr[i], arr[j] = arr[j], arr[i]
    arr[i + 1], arr[high] = arr[high], arr[i + 1]
    return i + 1
ការតម្រៀប​រហ័ស - Interactive Visualization | AlgoViz | AlgoViz