将输入从小到大排序,作为正确的位置
用一个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))

京公网安备 11010502036488号