基础算法篇之冒泡算法


每日一个算法之冒泡算法

 

 

    1 算法原理 

  

        冒泡算法算是一个比较经典且广为人知的一个基础算法,思想逻辑也是十分简单的,大致的是对一组可比较的数据进行按照从小到大,或者从大到小的顺序进行排列,我们知道要比较一组数据大小

    应当先比较两个数的大小,我们把比较大的数字往后移动这样就完成了两个数的按照从小到大的顺序进行排列,对于三个数据我们再把前面那个比较大的数字与第三数字进行比较,把大的数据移到最后,这样依次类         
     推,就完成了任意长度的数字的最大值的寻找,并且把它移到了数组的最后面位置。同理,对于第二大的数据我们暂时将之前已经排序过的数据不再进行参与,所以每经过一次排序,后面的排序队列会相应的减少       

    一个,直到比较到最后2个,完成一轮排序

 

    2 代码实现

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# 冒泡算法

def bubbleSort():
    List = [9, 3, 5, 7, 2]
    listLength = len(List)
    for outerCount in range(listLength - 1):
        for detailCount in range(listLength - 1 - outerCount):
            if List[detailCount] > List[detailCount + 1]:
                List[detailCount], List[detailCount + 1] = List[detailCount + 1], List[detailCount]
    print(List)


if __name__ == '__main__':
    bubbleSort()