最簡單的排序演算法,也是最暴力的,除了搞笑的猴子排序。。
主要思想是兩兩比較,把大的往後挪,理論上要走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 重複遍歷需要排序的數列,依次比較兩個元素,如果順序錯誤就進行交換,直到不再需要交換為止。演算法步驟如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。針對所有的元...