今天复习了排序的有关算法,正好这段时间也在学习Python,就去网上查找了有关排序算法的Python实现。
原文请见http://javayhu.me/blog/2014/05/07/python-data-structures---c2-sort/
以下贴出代码片段,运行结果如截图所示
—————————————————————————————————————————————————————————
def short_bubble_sort(a_list):
exchanges = Truepass_num=len(a_list) - 1
while pass_num > 0 and exchanges:
#变量exchanges是一个flag,对于一个已经排好序的数组来说可以起到跳出循环的作用
exchanges = False
for i in range(pass_num):
if a_list[i] > a_list[i+1]:
exchanges = True
a_list[i],a_list[i+1] = a_list[i+1], a_list[i]
pass_num = pass_num - 1
if __name__ == '__main__':
a_list=[1,4,43,2]
short_bubble_sort(a_list)
print(a_list)
—————————————————————————————————————————————————————————
冒泡排序算是非常简单的一种排序方法了,也很好理解,它的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误则交换,算法核心是双重嵌套循环,所以时间复杂度很高,为O(N²)。