od 考试整形数组按个位值排序
时间: 2023-08-07 18:01:03 浏览: 117
要按个位值对整形数组进行排序,可以使用计数排序。首先,创建一个大小为10的计数数组count,用于存放每个个位值对应的数字出现的次数。然后,遍历整形数组,将每个数字的个位值取出,并在对应的count数组位置上加1。接下来,将count数组中的元素累加,得到每个个位值最后应该出现的位置。然后,创建一个与原数组相同大小的临时数组temp,用于存放排序结果。再次遍历原数组,将每个数字的个位值取出,根据count数组中对应的位置,将数字放入temp数组中,并将count数组中对应位置的值减1。最后,将temp数组中的值复制回原数组,即完成了按个位值排序的过程。
以下是示例代码:
```python
def radix_sort(arr):
max_value = max(arr)
exp = 1
while max_value // exp > 0:
count = [0] * 10
temp = [0] * len(arr)
for num in arr:
digit = (num // exp) % 10
count[digit] += 1
for i in range(1, 10):
count[i] += count[i - 1]
for i in range(len(arr) - 1, -1, -1):
num = arr[i]
digit = (num // exp) % 10
temp[count[digit] - 1] = num
count[digit] -= 1
arr[:] = temp
exp *= 10
arr = [53, 89, 12, 43, 24]
radix_sort(arr)
print(arr)
```
以上代码实现了对整形数组arr按个位值进行排序,最终输出结果为[12, 43, 24, 53, 89]。
阅读全文