对用随机函数产生的10个数,按从小到大的顺序排序,分别用冒泡排序、选择排序、插入排序来实现。
时间: 2023-06-11 08:08:57 浏览: 143
冒泡排序算法的思想是:每次比较相邻的两个数,如果前一个数比后一个数大,则交换这两个数,一轮比较下来,可以保证最后一个数是最大的数,然后再对前面的数进行同样的比较,直到所有的数都排列好为止。
选择排序算法的思想是:每次从待排序的数中选择最小值,与当前位置的数交换,一轮比较下来,可以保证当前位置是已排序数中的最小值,然后再从剩下的数中选择最小值进行交换,直到所有的数都排列好为止。
插入排序算法的思想是:将一个数插入到已排好序的数列中,从而得到一个新的、个数加一的有序数列。插入排序的基本操作是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为 O(n^2)。
下面是用 Python 代码实现以上三种排序算法:
```python
import random
# 生成随机数列表
lst = [random.randint(0, 100) for i in range(10)]
print("原始列表:", lst)
# 冒泡排序
for i in range(len(lst) - 1):
for j in range(len(lst) - i - 1):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
print("冒泡排序:", lst)
# 选择排序
for i in range(len(lst) - 1):
min_index = i
for j in range(i + 1, len(lst)):
if lst[j] < lst[min_index]:
min_index = j
lst[i], lst[min_index] = lst[min_index], lst[i]
print("选择排序:", lst)
# 插入排序
for i in range(1, len(lst)):
tmp = lst[i]
j = i - 1
while j >= 0 and lst[j] > tmp:
lst[j + 1] = lst[j]
j -= 1
lst[j + 1] = tmp
print("插入排序:", lst)
```
输出结果:
```
原始列表: [98, 39, 56, 77, 5, 67, 93, 3, 9, 13]
冒泡排序: [3, 5, 9, 13, 39, 56, 67, 77, 93, 98]
选择排序: [3, 5, 9, 13, 39, 56, 67, 77, 93, 98]
插入排序: [3, 5, 9, 13, 39, 56, 67, 77, 93, 98]
```
阅读全文