给定一个长度为N的整形数组arr,其中有N个互不相等的自然数1-N。请实现arr的排序,但是不要把下标位置上的数通过直接赋值的方式替换成
[要求]
时间复杂度为,空间复杂度为
备注:
第一行有一个整数N。表示数组长度
接下来一行有N个互不相等的自然数1-N。
输出N个整数表示排序后的结果
5 2 1 4 5 3
1 2 3 4 5
N = eval(input()) ls = list(map(int, input().split())) ls.sort() print(' '.join(map(str, ls)))
N = eval(input()) ls = list(map(int, input().split())) for i in range(N): if ls[i] == i+1: # 若位置i上的值为i+1,则位置正确 continue else: # 若位置i上的值不正确时 i_index = ls.index(i+1) #先确定i+1 的正确位置 # 将值为i+1的位置与位置i互换 ls[i], ls[i_index] = ls[i_index], ls[i] print(' '.join(map(str, ls)))