Back to Home

ការតម្រៀប​បែប​បញ្ចូល​គ្នា

ក្បួន​ដោះស្រាយ​ការ​តម្រៀប​ប្រកបដោយ​ប្រសិទ្ធភាព ស្ថិរភាព និង​ផ្អែក​លើ​ការ​ប្រៀបធៀប ដោយ​ប្រើ​វិធីសាស្ត្រ​បែងចែក និង​យក​ឈ្នះ។

Visualization

Step 1 / 10
Speed:

Details

Analogy

គិត​ពី​បណ្ណារក្ស​ពីរ​នាក់ ដែល​ម្នាក់ៗ​មាន​សៀវភៅ​មួយ​គំនរ​ដែល​បាន​តម្រៀប​តាម​អក្ខរក្រម។ ដើម្បី​បង្កើត​គំនរ​ធំ​មួយ​ដែល​បាន​តម្រៀប ពួកគេ​ប្រៀបធៀប​សៀវភៅ​ខាង​លើ​สุด​ของ​គំនរ​នីមួយៗ យក​เล่ม​ที่​មក​ก่อน ហើយ​ដាក់​វា​លើ​គំនរ​ថ្មី។ ពួកគេ​ធ្វើ​បែប​នេះ​ដដែលៗ​រហូត​ដល់​សៀវភៅ​ទាំង​អស់​ត្រូវ​បាន​បញ្ចូល​គ្នា​ទៅ​ជា​គំនរ​ថ្មី​មួយ​ដែល​បាន​តម្រៀប។

Purpose

ដើម្បី​តម្រៀប​អារេ​ដោយ​បែងចែក​វា​ជា​ពីរ​ផ្នែក តម្រៀប​ផ្នែក​ទាំង​នោះ​ឡើង​វិញ ហើយ​បន្ទាប់​មក​បញ្ចូល​ផ្នែក​ដែល​បាន​តម្រៀប​រួច​ចូល​គ្នា។

Use Cases

ល្អ​សម្រាប់​ទិន្នន័យ​ធំ ហើយ​ពិសេស​មាន​ប្រយោជន៍​នៅ​ពេល​ភាព​ថេរ​ត្រូវ​បាន​ទាមទារ (ធាតុ​ស្មើ​គ្នា​រក្សា​លំដាប់​សម្រាប់​របស់​ពួកគេ)។ ប្រើ​ក្នុង​កម្មវិធី​ដែល​ទាមទារ​ដំណើរ​ការ​ធាតុ​យ៉ាង​ច្រើន​ប្រកបដោយ​ប្រសិទ្ធភាព។

Algorithm Steps

Line 1
1
function mergeSort(arr, left, right):
2
if left < right:
3
mid = (left + right) / 2
4
mergeSort(arr, left, mid)
5
mergeSort(arr, mid+1, right)
6
merge(arr, left, mid, right)
7
8
function merge(arr, left, mid, right):
9
create temp arrays L and R
10
copy data to L and R
11
merge L and R back into arr
Current
Executed
Pending

Explanation

What's Happening?

Step 1/10

អារេដំបូង។ ក្បួនដោះស្រាយនឹងបែងចែកវាឡើងវិញ។

Updates with each step • Clickfor full view

Code Implementation

def merge_sort(arr):
    if len(arr) > 1:
        mid = len(arr) // 2
        L = arr[:mid]
        R = arr[mid:]
        merge_sort(L)
        merge_sort(R)
        i = j = k = 0
        while i < len(L) and j < len(R):
            if L[i] < R[j]:
                arr[k] = L[i]
                i += 1
            else:
                arr[k] = R[j]
                j += 1
            k += 1
        while i < len(L):
            arr[k] = L[i]
            i += 1
            k += 1
        while j < len(R):
            arr[k] = R[j]
            j += 1
            k += 1
    return arr
ការតម្រៀប​បែប​បញ្ចូល​គ្នា - Interactive Visualization | AlgoViz | AlgoViz