冒泡排序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

 

posted @ 2019-03-30 14:21  zwtzz  阅读(242)  评论(0编辑  收藏  举报