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
ការតម្រៀបបែបធុង - Interactive Visualization | AlgoViz | AlgoViz