list1=[88,56,12,3,47,1,65,2]
8个元素,排序,从小到大排序,冒号
方法一:
for i in range(1,len(list1)):#1,2,3,4,5,6,7,i为所有元素统一参与比较的轮数,第一轮以后就剩7个元素参与排序
for j in range(0,len(list1)-i):#j为元素的下标位置
if list1[j]>list1[j+1]:
list1[j],list1[j+1]=list1[j+1],list1[j]
print(list1)
方法二:
for i in range(0,len(list1)-1):#0,1,2,3,4,5,6,7
for j in range(0,len(list1)-i-1):
if list1[j]>list1[j+1]:
list1[j],list1[j+1]=list1[j+1],list1[j]
print(list1)
# 自己的理解 开始:
# 人工排列:
# 第一轮:88和56比同时调换位置,88排第二位,然后88跟12比同时调换位置,88在第三位,88和3比同时调换位置,88在第四位,
# 88和47比同时调换位置,88在第五位,88和1比同时调换位置,88在第六位,88和65比同时调换位置,88排列在第七位,88和2比同时调换位置,88排第八位
# 第一轮比大小排序变为:56 12 3 47 1 65 2 88(88为最大值就不动了)i=1时,8个数在比较,对应的下标是(0,7)
# 第二轮比大小排序变为:12 3 47 1 56 2 65 (88不动,第二轮又确定了一个不动的值 65)i=2时,7个数在比较,对应的下标是(0,6)
# 第三轮比大小排序变为:3 12 1 47 2 56 (65 88不动,第三轮又确定了一个不动的值56)i=3时,6个数在比较,对应的下标是(0,5)
# 第四轮比大小排序变为:3 1 12 2 47(56 65 88不动,第四轮又确定了一个不动的值47)i=4时,5个数在比较,对应的下标是(0,4)
# 第五轮比大小排序变为:1 3 2 12(47 56 65 88不动,第五轮又确定了一个不动的值12)i=5时,4个数在比较,对应的下标是(0,3)
# 第六轮比大小排序变为:1 2 3(12 47 56 65 88不动,第六轮又确定了一个不动的值3)i=6时,3个数在比较,对应的下标是(0,2)
# 第七轮比大小排序变为:1 2(3 12 47 56 65 88不动,第七轮又确定了一个不动的值2)i=7时,2个数在比较,对应的下标是(0,1)
# len(list1)=8个元素
# [0][1][2][3][4][5][6][7]---下标位置
# 88,56,12,3, 47,1, 65,2----各个元素对应
# i(第几轮)--j(几个数在比,也可当成index对应的下标位置,如j=0和0+1比)--
# 1 8 (0,7)
# 2 7 (0,6)
# 3 6 (0,5)
# 4 5 (0,4)
# 5 4 (0,3)
# 6 3 (0,2)
# 7 2 (0,1)
# 当j=2时,两个数在比较,比如[0][1],如果[0]>[1]那么摆放的位置就调换[1][0]
# 自己的理解 结束!