氣泡排序(優化版本)

2021-09-28 19:26:34 字數 1154 閱讀 5847

最簡單的排序演算法,也是最暴力的,除了搞笑的猴子排序。。

主要思想是兩兩比較,把大的往後挪,理論上要走n*n趟(陣列長度為n)

例如:未排序前[1,9,5,6,4]->[1,5,6,4,9]->[1,5,4,6,9]->[1,4,5,6,9]

#!usr/bin/env python

# -*- coding:utf-8 -*-

"""@author:69529

@file: bubblesort.py

@time: 2019/09/28

@contact :

@software: pycharm

@desc :

"""def

bublesort

(collection)

:"""

bubblesort

:param collection:

:return:list

"""for i in

range

(len

(collection)-1

):# 走多少趟

swap =

false

for j in

range

(len

(collection)-1

- i)

:if collection[j]

> collection[j +1]

:# 優化 -> 冒泡每次一定會把最大值放在最後

swap =

true

collection[j +1]

, collection[j]

= collection[j]

, collection[j +1]

ifnot swap:

break

# 優化 如果已經有序,則不再比較

return collection

if __name__ ==

'__main__'

:print

(bublesort([5

,3,1

,2,0

,4,7

,6])

)

優化思路:

氣泡排序優化 java版本

氣泡排序的演算法描述 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。優化思路 如果...

氣泡排序 氣泡排序演算法優化

常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...

優化氣泡排序

氣泡排序 bubble sort 重複遍歷需要排序的數列,依次比較兩個元素,如果順序錯誤就進行交換,直到不再需要交換為止。演算法步驟如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。針對所有的元...