选择排序法与冒泡排序法

candy 3



选择排序法

工作原理:每一轮都找出最小值,即在未排序的序列中找到最小元素,存放在排序序列的起始位置,然后再到剩余未排序序列找到最小元素,放到已排序序列的末尾,以此类推,直到所有元素排序完毕。

#选择排序法代码实现
score_list=[99,666,88,100,58,66,1,-58,22,60]
n=len(score_list) #n=score_list._len_()

#n个数排n-1次,0,1,2…,n-1
for i in range(0,n-1):
k=i #把当前这轮的第一个数给k
for j in range(i+1,n):
if score_list[k]>score_list[j]:
k=j
if k!=i :
score_list[k],score_list[i]=score_list[i],score_list[k]

print(score_list)

冒泡排序法

工作原理:根据轻气泡不能在重气泡之下的原则,从下往上扫描数组:凡扫描到违反本原则的轻气泡,就使其向上”飘浮”。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。即重复的走访要排序的序列,一次比较相邻的2个元素,如果顺序与要求排列的顺序不一致则互换,直到没有需要再交换的数据,代表排序完成。

# 冒泡排序法代码实现
score_list=[0,5,6,1,-2]
n=score_list.__len__()

for i in range(0,n-1): #取值0到n-2,一共n-2+1=n-1次循环
for j in range(n-1,i,-1): #从后往前冒泡倒序
if score_list[j]<score_list[j-1]:
score_list[j],score_list[j-1]=score_list[j-1],score_list[j]
print(score_list) #查看交换过程

print(score_list)

candy

有志者,事竟成

3 Replies to “选择排序法与冒泡排序法”

发表评论

邮箱地址不会被公开。 必填项已用*标注