0基础教程习题14—冒泡排序法

冒泡排序法


1、题目要求

 

编写冒泡排序法


 

2、程序分析

 

排序是对无序list的一种操作,经过排序后,list变得有序,或是从小到大,或是从大到小

冒泡排序法是最简单的排序法,它的思路非常简洁,已知一个lst,里面有N的元素

先对N个元素进行排序,相邻两个数值进行比较,大的往前移动

对N-1个元素进行排序,相邻两个数值进行比较,大的往前移动

对N-2个元素进行排序,相邻两个数值进行比较,大的往前移动

 

。。。。。。周而复始,最终,lst变成一个有序的list

 

实际举例来说,有一个序列 5,4,2,1

第一次排序后   4 2 1 5

第二次排序后   2 1 4 5

第三次排序后   1 2 4 5


 

3、示例代码

 

#coding=utf-8
lst = [5,8,2,4,1,9,15]
def bubbleSort(lst):
    for i in range(len(lst)-1):
        for j in range(len(lst)-1-i):
            if lst[j] > lst[j+1]:
                lst[j],lst[j+1] = lst[j+1],lst[j]

    return lst

print bubbleSort(lst)

 

程序分析

  1. 第一个for循环,控制排序的次数
  2. 第二个for循环,控制排序时的数据范围,已经有序的区域不需要再参与排序