← Back to Home
ការតម្រៀបបែបធុង
ក្បួនដោះស្រាយការតម្រៀបដែលចែកធាតុទៅក្នុងធុង តម្រៀបធុងនីមួយៗ រួចបញ្ចូលពួកវាជាមួយគ្នា។
Visualization
Step 1 / 10
Speed:
Details
Analogy
ស្រមៃថាការតម្រៀបសន្លឹកបៀ។ ជាមុនសិន អ្នកបង្កើតធុង 4 (មួយសម្រាប់សញ្ញានីមួយៗ) ចែកសន្លឹកបៀទៅក្នុងធុងរបស់ពួកវា តម្រៀបធុងនីមួយៗ រួចបញ្ចូលធុងដែលបានតម្រៀបទាំងអស់។
Purpose
ដើម្បីតម្រៀបទិន្នន័យដែលមានការចែកចាយស្មើៗគ្នាយ៉ាងមានប្រសិទ្ធភាព ដោយចែកវាទៅក្នុងធុង តម្រៀបធុងនីមួយៗ រួចបញ្ចូលលទ្ធផល។
Use Cases
ល្អសម្រាប់ការតម្រៀបលេខទសភាគដែលមានការចែកចាយស្មើៗគ្នារវាង 0 និង 1។ ប្រើជាទូទៅក្នុងក្បួនដោះស្រាយការតម្រៀបស្របគ្នា។
Algorithm Steps
Line 1
1
function bucketSort(array):
2
n = length(array)
3
buckets = create n empty buckets
4
for i = 0 to n - 1:
5
index = floor(n * array[i] / (max + 1))
6
insert array[i] into buckets[index]
7
for i = 0 to n - 1:
8
sort each bucket using insertion sort
9
result = concatenate all buckets
10
return result
Current
Executed
Pending
Explanation
What's Happening?
Step 1/10
អារេដំបូង ដែលមានធាតុ 6: [7, 2, 9, 4, 1, 6]។
Updates with each step • Clickfor full view
Code Implementation
def bucket_sort(arr):
if len(arr) == 0:
return arr
# Find maximum value to normalize
max_val = max(arr)
min_val = min(arr)
bucket_range = (max_val - min_val) / len(arr)
# Create empty buckets
buckets = [[] for _ in range(len(arr))]
# Distribute elements into buckets
for num in arr:
if bucket_range == 0:
index = 0
else:
index = int((num - min_val) / bucket_range)
if index == len(arr):
index -= 1
buckets[index].append(num)
# Sort individual buckets and concatenate
result = []
for bucket in buckets:
result.extend(sorted(bucket))
return result