交换瓶子(冒泡排序)

题目描述

有N个瓶子,编号1~N,放在架子上 比如有5个瓶子 21 354 要求每次拿起2个瓶子,交换它们的位置 经过若干次后,使得瓶子的序号为: 12345 对于这么简单的情况,显然,至少需要交换2次就可以复位 如果瓶子更多呢?你可以通过编程来解决

输入描述

输入格式为两行 第一行:一个正整数N(N<104)表示瓶子的数目 第二行:个正整数,用空格分开,表示瓶子目前的排列情况

输出描述

输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。

Mycode

1
2
3
4
5
6
7
8
9
N=int(input())
li=list(map(int,input().split()))
change=0
for i in range(len(li)):
if li[i]!=i+1:#如果li[i]不等于(序列号+1)
a=li.index(i+1)
li[i],li[a]=li[a],li[i]
change+=1
print(change)

交换瓶子(冒泡排序)
https://ianwusb.blog/2024/04/08/交换瓶子-冒泡排序/
作者
Ianwusb
发布于
2024年4月8日
许可协议