标签:bsp while sele 学习 冒泡算法 iter class 序列 str
各种排序算法的Python实现
1.冒泡算法 :
‘‘‘
冒泡排序
‘‘‘
def bubble_sort(sort_list):
iter_len = len(sort_list)
if iter_len < 2:
return sort_list
for i in range(iter_len-1):
for j in range(iter_len-i-1):
if sort_list[j] > sort_list[j+1]:
sort_list[j],sort_list[j+1] = sort_list[j+1],sort_list[j]
return sort_list
sort_list = [1,5,6,8,9,2,4]
print(bubble_sort(sort_list))
#[1, 2, 4, 5, 6, 8, 9]
2.插入排序:
在玩扑克的时候我们通常会选择把抽到的牌插入到合适的位置,这样就可以保证在抽牌结束之后我们手中的牌是呈序列显示。借鉴此思路,我们可以拿当前的数与排序好的数组比较,若比已排好的数组中的数值小,则已排的数值后移,继续比较,指到遇到比已拍好的数值小的,则将其放入即可。后续重复进行此操作。
def insertion_sort(sort_list):
iter_len = len(sort_list)
if iter_len < 2:
return sort_list
for i in range(1, iter_len):
key = sort_list[i]
j = i - 1
while j>=0 and sort_list[j]>key:
sort_list[j+1] = sort_list[j]
j =j - 1
sort_list[j+1] = key
return sort_list
sort_list = [1,5,6,8,9,2,4,50,7]
print(bubble_sort(sort_list))
#[1, 2, 4, 5, 6, 7, 8, 9, 50]
3.选择排序:
选择排序跟冒泡排序非常相似,冒泡排序是每次如果比它小就会交换位置,而选择排序不会马上交换位置,而是将比它小的数字的位置保存下来,直到循环结束后才交换位置。
def selection_sort(sort_list):
iter_len = len(sort_list)
if iter_len < 2:
return sort_list
for i in range(len(sort_list)-1):
smallest = sort_list[i]
location = i
for j in range(i,iter_len):
if sort_list[j] < smallest:
smallest = sort_list[j]
location = j
if i != location:
sort_list[i],sort_list[location] = sort_list[location],sort_list[i]
return sort_list
sort_list = [1,5,6,8,9,2,4,50,7,504,551,1226]
print(bubble_sort(sort_list))
#[1, 2, 4, 5, 6, 7, 8, 9, 50, 504, 551, 1226]
标签:bsp while sele 学习 冒泡算法 iter class 序列 str
原文地址:https://www.cnblogs.com/wdz1226/p/10543849.html