📅  最后修改于: 2023-12-03 15:07:33.240000             🧑  作者: Mango
这是一道关于排序算法的题目,要求使用插入排序对一组给定的数字进行排序。
给定一组数字,请使用插入排序进行排序,并输出排序后的结果。
第一行是一个整数 T,表示测试用例的数量。
对于每个测试用例,第一行是一个整数 N,表示数字的数量。接下来一行是 N 个数字,用空格隔开。
对于每个测试用例,输出一行表示排序后的数字,用空格隔开。
2
5
3 2 1 5 4
3
1 2 3
1 2 3 4 5
1 2 3
插入排序是通过构建有序序列,对于未排序的数据,在已排序的序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,每次插入新的元素时,要将插入点后的所有元素后移一位。
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j = j - 1
arr[j + 1] = key
return arr
t = int(input())
for i in range(t):
n = int(input())
arr = list(map(int, input().split()))
sorted_arr = insertion_sort(arr)
print(*sorted_arr)
注:以上代码为 Python 实现,使用了 tsingwong 大佬的插入排序实现方式。