ការតម្រៀបបែបជ្រើសរើស
ក្បួនដោះស្រាយការតម្រៀបប្រៀបធៀបនៅនឹងកន្លែងដែលជ្រើសរើសធាតុតូចបំផុតម្ដងហើយម្ដងទៀត ហើយផ្លាស់ទីវាទៅផ្នែកដែលបានតម្រៀបរួច។
Visualization
Details
Analogy
គិតពីការរៀបចំសន្លឹកបៀតាមតម្លៃ។ អ្នកស្កេនសន្លឹកបៀទាំងអស់ដើម្បីស្វែងរកសន្លឹកដែលទាបបំផុត (Ace) ហើយដាក់វានៅដើមដំបូង។ បន្ទាប់មក អ្នកស្កេនសន្លឹកបៀដែលនៅសល់ដើម្បីស្វែងរកសន្លឹកដែលទាបបន្ទាប់ (លេខ 2) ហើយដាក់វានៅទីតាំងទីពីរ។ អ្នកធ្វើបែបនេះដដែលៗរហូតដល់សន្លឹកបៀទាំងអស់ត្រូវបានតម្រៀប។
Purpose
ដើម្បីតម្រៀបអារេដោយស្វែងរកធាតុតូចបំផុតពីផ្នែកដែលមិនទាន់តម្រៀបម្ដងហើយម្ដងទៀត ហើយដាក់វានៅដើម។
Use Cases
ល្អសម្រាប់បញ្ជីតូចៗ ឬនៅពេលដែលប្រតិបត្តិការសរសេរหน่วยความจำជាកង្វល់ ព្រោះវាកាត់បន្ថយจំនวនការប្ដូរ។
Algorithm Steps
for i = 0 to n-1:
minIndex = i
for j = i+1 to n:
if arr[j] < arr[minIndex]:
minIndex = j
swap arr[i] with arr[minIndex]
Explanation
What's Happening?
ជុំទី 1: ស្វែងរកធាតុតូចបំផុតក្នុងអារេដែលមិនបានតម្រៀប [64, 25, 12, 22, 11]។
Code Implementation
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i + 1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr