×

Python算法(一) 数组冒泡排序(难度等级:easy)

96
高杆python
2017.09.21 12:37* 字数 208

冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序。
算法原理:从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。算法的核心在于每次通过两两比较交换位置,选出剩余无序序列里最大(小)的数据元素放到队尾。
Python代码1:

#Python算法--冒泡排序1
import random
def main(array):
    for i in range(1,len(array)):
        for j in range(len(array)-i):
            if array[j] > array[j+1]:
                array[j],array[j+1]=array[j+1],array[j]
    print("冒泡排序数组:",array)
if __name__ == '__main__':
    array = []
    for i in range(15):
        array.append(random.randint(1,1000)) 
    print("随机生成数组:",array)
    main(array)

执行效果:

python冒泡排序1

Python代码2:

#Python算法--冒泡排序2
import random
def main(array):
    num = len(array)
    while num > 0:
        for j in range(num-1):
            if array[j] > array[j+1]:
                array[j],array[j+1]=array[j+1],array[j]
        num-=1
    print("冒泡排序数组:",array)
if __name__ == '__main__':
    array = []
    for i in range(15):
        array.append(random.randint(1,1000)) 
    print("随机生成数组:",array)
    main(array)

代码1和代码2写法略有不同,但原理相同,测试执行效率相同。

python算法篇
Web note ad 1