基于python的计数排序代码150行
时间: 2024-12-02 11:16:18 浏览: 7
基于Python的计数排序算法通常用于非负整数的排序,它利用了元素值范围的特点,通过统计每个元素出现的次数来进行排序。由于你提到限制为150行代码,下面是一个简化的版本,大约包含150行左右:
```python
def counting_sort(arr):
# 获取数组最大值
max_val = max(arr)
# 初始化计数数组,长度为max_val+1,所有元素初始化为0
count = [0] * (max_val + 1)
# 统计每个元素的出现次数
for num in arr:
count[num] += 1
# 计算累计值
sorted_count = [count[0]]
for i in range(1, len(count)):
sorted_count.append(sorted_count[-1] + count[i])
# 对原数组进行排序
sorted_arr = [0] * len(arr)
for num in arr:
index = num
sorted_arr[sorted_count[index]-1] = num
count[index] -= 1
if count[index] == 0:
sorted_count.pop()
return sorted_arr
# 测试
arr = [4, 2, 2, 8, 3, 3, 1]
print("Original array:", arr)
sorted_arr = counting_sort(arr)
print("Sorted array using Counting Sort:", sorted_arr)
阅读全文