#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:richard_kong
"""氣泡排序:是一種簡單的排序演算法。它重複的遍歷要排序的數列,一次比較量兩個元素,如果他們的順序錯誤就把他們的順序交換過來。
遍歷數列的工作時重複的進行直到沒有再需要交換,也就是說該數列已經排序完成。
氣泡排序的演算法運作如下:
1、比較相鄰的元素。如果第乙個比第二個大,就交換他們(這是公升序)
2、對每一對相鄰元素作同樣的工作,從開始第一隊到結尾最後一對,這部做完後,最後的元素會是最大的數
3、針對所有的元素重複以上的步驟,除了最後乙個
4、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較
根據原理來計算氣泡排序的時間複雜度:
第一次排序需要計算n-1次,第二次需要n-2次 .......1次
相加n-1 + n-2 + n-3 + .... +2 +1 = n(n-1)/2 = o(n^2)
所以時間複雜度為o(n^2)
"""def bubble_sort(alist):
"""氣泡排序演算法,range(1,5,1)從1到5間隔1
:param alist:穿入需要排列的資料
:return:
"""for j in range(len(alist)-1,0,-1):
for i in range(j):
if alist[i] > alist[i+1]:
alist[i],alist[i+1] = alist[i+1],alist[i]
lis = [98,12,34,1,2,13,45,6,12,34,44,56]
bubble_sort(lis)
print(lis)
氣泡排序的Python實現
最近被考到乙個簡單演算法 氣泡排序,彷彿是大三的時候學過,大概原理還記得一點,現在除錯了一下把完整 寫出來了,記錄一下。usr bin env python coding utf 8 def bubble sort list len of list len list while len of lis...
Python 實現的氣泡排序
氣泡排序屬交換排序,最簡單的一種排序演算法 排序思路 n為陣列長度,經過n趟比較,每趟比較相鄰的兩元素,將較大元素放到最後,當有一趟比較中沒有交換時退出 import util 氣泡排序 class bubblesort def sort self,arrdata length len arrdat...
氣泡排序(python實現)
coding utf 8 created on tue jul 4 11 37 19 2017 data list cnt num all 0 def data in func data list,cnt num all while true judge continue input 請選擇是輸入資...