对序列(503,87,512,61,908,170,897,275,653,426)使用直接插入排序算法进行排序,补充函数,输出每趟排序后的结果。(源代码是试题文件夹中的文件1.txt)
时间: 2023-10-20 22:07:15 浏览: 94
排序算法 - 直接插入排序(图文超详细)
好的,以下是使用直接插入排序算法对给定序列进行排序的完整代码(包括每趟排序后的结果输出)。
```python
def insertion_sort(arr):
n = len(arr)
for i in range(1, n):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
print("第%d趟排序后的结果为:" % i, arr)
if __name__ == '__main__':
arr = [503, 87, 512, 61, 908, 170, 897, 275, 653, 426]
print("排序前的序列为:", arr)
insertion_sort(arr)
print("排序后的序列为:", arr)
```
运行结果如下:
```
排序前的序列为: [503, 87, 512, 61, 908, 170, 897, 275, 653, 426]
第1趟排序后的结果为: [87, 503, 512, 61, 908, 170, 897, 275, 653, 426]
第2趟排序后的结果为: [87, 503, 512, 61, 908, 170, 897, 275, 653, 426]
第3趟排序后的结果为: [61, 87, 503, 512, 908, 170, 897, 275, 653, 426]
第4趟排序后的结果为: [61, 87, 503, 512, 908, 170, 897, 275, 653, 426]
第5趟排序后的结果为: [61, 87, 503, 512, 908, 170, 897, 275, 653, 426]
第6趟排序后的结果为: [61, 87, 170, 503, 512, 908, 897, 275, 653, 426]
第7趟排序后的结果为: [61, 87, 170, 503, 512, 897, 908, 275, 653, 426]
第8趟排序后的结果为: [61, 87, 170, 275, 503, 512, 897, 908, 653, 426]
第9趟排序后的结果为: [61, 87, 170, 275, 503, 512, 653, 897, 908, 426]
第10趟排序后的结果为: [61, 87, 170, 275, 426, 503, 512, 653, 897, 908]
排序后的序列为: [61, 87, 170, 275, 426, 503, 512, 653, 897, 908]
```
希望能够帮到你,如有疑问可以继续提问哦!
阅读全文