4. python插入排序问题(必做) (1) 编写插入排序程序。要求将插入排序写成函数。 (2)生成长度为N的伪随机序列,对伪随机序列进行插入排序。N=10000,30000,50000 (3)并计算排序耗费的时间。
时间: 2024-09-24 13:10:07 浏览: 54
在Python中,插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
以下是编写插入排序函数的一个例子:
```python
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
# 生成指定长度的伪随机序列
import random
def generate_random_array(n):
return [random.randint(0, 10000) for _ in range(n)]
# 测试插入排序性能
for n in [10000, 30000, 50000]:
start_time = time.time()
sorted_arr = insertion_sort(generate_random_array(n))
end_time = time.time()
# 计算排序时间
sort_duration = end_time - start_time
print(f"对于数组长度 {n} 的随机数,插入排序耗时: {sort_duration}秒")
# 输出排序后的数组
print("Sorted array:", sorted_arr)
```
在这个示例中,我们首先定义了一个插入排序函数`insertion_sort`,然后使用`generate_random_array`生成长度为`n`的随机数列表。接着,我们分别对10000、30000和50000这个长度的数组执行排序,并记录每个步骤所花费的时间。
阅读全文