python基本排序演算法演示

2021-09-25 15:02:29 字數 2419 閱讀 6395

"""

基本排序演算法示例

"""class

sort

:def

__init__

(self,

list):

self.

list

=list

# 氣泡排序

defbubble

(self)

: n = self.

list

# 外層表示比較多少輪

for i in

range

(len

(n)-1)

:# 內層表示每輪比較多少次

for j in

range

(len

(n)-

1- i)

:# 前乙個數比後乙個數大則交換位置

if n[j]

> n[j +1]

: n[j]

, n[j +1]

= n[j +1]

, n[j]

return n

# 選擇排序

defselect

(self)

: n = self.

list

for i in

range

(len

(n)-1)

:min

= i # 假定i號位置數字最小

for j in

range

(i+1

,len

(n))

:if n[i]

> n[j]

:min

= j if i !=

min:

n[i]

,n[min

]= n[

min]

,n[i]

return n

# 插入排序

definsert

(self)

: n = self.

list

for i in

range(1

,len

(n))

: x = n[i]

j = i

while j >

0and n[j-1]

> x:

n[j]

= n[j-1]

j -=

1 n[j]

= x return n

# 快速排序

# 一輪交換

defsub_sort

(self,low,high)

: key = self.

list

[low]

# 基準數字

while low < high:

# 後面的數向前甩

while low < high and self.

list

[high]

>= key:

high -=

1 self.

list

[low]

= self.

list

[high]

# 前面的數向後甩

while low < high and self.

list

[low]

< key:

low +=

1 self.

list

[high]

= self.

list

[low]

self.

list

[low]

= key

return low

defquick

(self,low,high)

:# low 表示列表開頭元素索引

# high 表示列表結尾元素索引

if low < high:

key = self.sub_sort(low,high)

self.quick(low,key-1)

self.quick(key+

1,high)

if __name__ ==

"__main__"

: l01 =[98

,5,61

,654,3

,748

] l = sort(l01)

# print(l.bubble())

# print(l.select())

# print(l.insert())

l.quick(0,

len(l01)-1

)print

(l.list

)

排序演算法演示

下面是排序演算法演示程式,比較直觀顯示排序演算法執行規律 flash 200,200 有關裡面三種排序演算法說明如下 1.插入排序 首先新建乙個空列表,用於儲存已排序的有序數列 我們稱之為 有序列表 從原數列中取出乙個數,將其插入 有序列表 中,使其仍舊保持有序狀態。重複2號步驟,直至原數列為空。插...

基礎排序演算法演示

滿腦子都是階段 狀態 決策 學無止境呀 發一點基本的排序演算法,分成很多個檔案寫的,每個檔案前面帶了注釋,一起發出來,結構如下 基礎排序演算法檔案結構 sort.h 標頭檔案 main.c 主演示程式 printkeys.c 資料輸出 ifcontinue.c 演示控制 random.c 隨機初始化...

演算法 氣泡排序演示

排序原理 1 比較相鄰的元素。如果前乙個元素比後乙個元素大,就交換這兩個元素的位置 2 對每一對相鄰元素做同樣的工作,從開始第一對元素到結尾的最後一對元素。最終最後位置的元素就是最大值。public class bubblesort 交換兩個位置的元素 private static void exe...