python氣泡排序演算法的運作如下:
1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
3.針對所有的元素重複以上的步驟,除了最後乙個。
4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
最優時間複雜度o(n)
最差時間複雜度o(n^2)
#! /usr/bin/env python
# -*- coding: utf-8 -*-
def bubble_sort(l):
length = len(l)
for i in xrange(length-1, 0, -1):
for j in xrange(i):
if l[j] > l[j+1]:
l[j], l[j+1] = l[j+1], l[j]
if __name__ == "__main__":
l1 = [3, 1, 2, 4, 9, 8, 6, 7, 5]
print l1
bubble_sort(l1)
print l1
python 的詳細介紹:請點這裡
Python程式設計排序 氣泡排序法
氣泡排序法定義 它重複地比較要排序的所有元素列,如果順序 如從大到小 首字母從z到a 錯誤就把他們交換過來。比較元素的工作是重複地進行直到沒有相鄰元素需要交換,排序完成。氣泡排序1每次找出最大值 def bubble sort biggest a for i in range 0 len a 1 p...
python實現牛頓法 牛頓迭代法Python實現
例1 給定方程 f x x 2 sin x 1 0 判別該方程有幾個實根,並用牛頓法求出方程所有實根,精確到 10 解 利用畫圖法觀察根的所在區間為 2,1 和 0,1 其中藍色為 y f x 的曲線,橘黃色的直線是 y 0 畫圖 import numpy as np import matplotl...
冒泡法python實現
usr bin env python coding utf8 def bubble sort alist 結算列表的長度 n len alist 外層迴圈控制從頭走到尾的次數 for j in range n 1 用乙個count記錄一共交換的次數,可以排除已經是排好的序列 count 0 內層迴圈...