ការតម្រៀបបែបបញ្ចូល
ក្បួនដោះស្រាយការតម្រៀបធម្មតាដែលបង្កើតអារេដែលបានតម្រៀបចុងក្រោយម្ដងមួយធាតុ ដោយបញ្ចូលធាតុថ្មីនីមួយៗទៅកន្លែងត្រឹមត្រូវ។
Visualization
Details
Analogy
នេះគឺដូចជារបៀបដែលមនុស្សส่วนใหญ่តម្រៀបសន្លឹកបៀក្នុងដៃ។ អ្នកកាន់សន្លឹកបៀដែលបានតម្រៀបក្នុងដៃម្ខាង។ អ្នកหยิบសន្លឹកបៀថ្មីពីกองแล้วสอดវាចូលไปក្នុងទីតាំងที่ត្រឹមត្រូវក្នុងដៃរបស់អ្នក ដោយเลื่อนសន្លឹកបៀอื่นៗตามความจำเป็นเพื่อเปิดทาง។
Purpose
ដើម្បីតម្រៀបអារេដោយយកធាតុមួយពីផ្នែកដែលមិនទាន់តម្រៀប ហើយស្វែងរកទីតាំងត្រឹមត្រូវរបស់វានៅក្នុងផ្នែកដែលបានតម្រៀបរួច។
Use Cases
มีประสิทธิภาพสำหรับชุดข้อมูลขนาดเล็ก และสำหรับชุดข้อมูลที่ถูกតម្រៀបส่วนใหญ่รួចហើយ។ វាអាចปรับตัวបាន และមีเสถียรភាพ។
Algorithm Steps
for i = 1 to n:
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j+1] = arr[j]
j = j - 1
arr[j+1] = key
Explanation
What's Happening?
ចាប់ផ្តើម។ ធាតុដំបូង 12 ត្រូវបានចាត់ទុកថាតម្រៀបរួចហើយ។
Code Implementation
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr