1.冒泡排序
冒泡排序即重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端;
步骤:
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一步后,最后的元素应该是最大的数。
3.针对所有的元素重复以上的步骤,除了上一步最后一个数不做比较。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码实现:
# _*_coding:utf-8_*_def bubble_sort(lst): length = len(lst) for index in range(length): for i in range(1, length-index): if lst[i-1] > lst[i]: lst[i], lst[i-1] = lst[i-1], lst[i] return lstif __name__ == "__main__": test_lst = [10, 23, 1, 53, 654, 54, 16, 646, 65, 3155, 546, 31] PRint bubble_sort(test_lst)注意:列表交换元素不需要设置temp变量lst = [1, 2, 3, 4, 5]lst[0], lst[1] = lst[1], lst[0]print lst2.选择排序从待排序的数据元素中选出最小(或最大)的一个元素,存放在每趟序列的起始位置,直到全部待排序的数据元素排完
新闻热点
疑难解答