冒泡排序python实现
原理:比较两个相邻的元素,将值大的元素交换至右端。
思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一轮比较中:首先比较第1个和第2个数,将小数放前,大数放后;然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一轮的步骤,直至全部排序完成。
第一轮比较完成后,确保了最后一个数是数组中最大的一个数,所以第二轮比较时,最后一个数不参与比较;
第二轮比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三轮比较时,最后两个数不参与比较;
依次类推,每一轮需要比较的次数-1;
示例:
def bub_sort(s_list):
for i in range(len(s_list)-1):
for j in range(len(s_list)-1-i):
if s_list[j] > s_list[j+1]:
s_list[j],s_list[j+1] = s_list[j+1],s_list[j]
return s_list