将输入从小到大排序,作为正确的位置
用一个seat字典储存当下每个人的位置,key为学号,value为位置
遍历每个人,如果站错位置,就在seat中查找正确的人当下的位置,交换位置,并将次数加1
n = int(input()) data = [] for _ in range(n): x = int(input()) data.append(x) sorted_data = sorted(data) seat = {x:i for (i,x) in enumerate(data)} ans = 0 for i in range(n): if data[i] != sorted_data[i]: j = seat[sorted_data[i]] data[i],data[j] = data[j],data[i] seat[data[i]], seat[data[j]] = i, j ans += 1 print(str(ans))