📅  最后修改于: 2023-12-03 15:39:51.744000             🧑  作者: Mango
本文介绍一个基于 Python 编程语言的插入排序计算器,该计算器可以帮助程序员更好地理解插入排序的工作流程和时间复杂度。以下是该计算器的使用方法和设计思路。
insertion_sort_calculator.py
。4 2 1 9 6
。示例输出:
请输入待排序的整数列表(以空格隔开):
4 2 1 9 6
第 1 轮排序:[2, 4, 1, 9, 6]
第 2 轮排序:[1, 2, 4, 9, 6]
第 3 轮排序:[1, 2, 4, 9, 6]
第 4 轮排序:[1, 2, 4, 6, 9]
第 5 轮排序:[1, 2, 4, 6, 9]
排序完成: [1, 2, 4, 6, 9]
插入排序是一种基于比较的排序算法,其工作原理是将待排序元素逐个插入到已排序序列中的正确位置。其主要思路是:
下面是该算法的 Python 代码实现。
def insertion_sort(array):
"""插入排序"""
for i in range(1, len(array)):
current_value = array[i]
position = i
while position > 0 and array[position-1] > current_value:
array[position] = array[position-1]
position = position - 1
array[position] = current_value
print(f"第 {i} 轮排序:{array}")
print(f"\n排序完成: {array}")
其中 array
表示输入的待排序列表。函数 insertion_sort()
会逐个取出列表 array
中的元素,在已排序序列中插入其正确的位置。具体实现过程是:
这里因为需要输出每一轮排序后的列表,所以在实现中使用了 print()
函数进行输出。如果不需要输出,则可以将代码改为:
def insertion_sort(array):
"""插入排序"""
for i in range(1, len(array)):
current_value = array[i]
position = i
while position > 0 and array[position-1] > current_value:
array[position] = array[position-1]
position = position - 1
array[position] = current_value
return array
这样,程序会将有序列表作为返回值,可以在其他代码中调用该函数。