資料結構與演算法 python實現快排

2021-10-09 11:05:44 字數 1029 閱讀 1166

python實現快速排序:

# 記錄第乙個坑的值,在最後做填充

i = start # 初始位置和末尾會發上改變,所以需要先做好記錄

j = end

m = end # 初始從最後面開始挖坑,所以先記錄

while

(start < end)

:while

(start < end)

and(l[start]

<= x)

:# 找出比假定的中位數x大的數,放到左邊

start +=

1if start < end:

l[m]

= l[start]

# 填坑

m = start # 記錄坑的位置

end -=

1# 將坑填後下次應該忽略填過坑的這個位置

while

(start < end)

and(l[end]

> x)

: end -=

1if start < end:

l[m]

= l[end]

m = end

start +=1

l[start]

= x

quick_sort(l,i,end-1)

# 分治(前半部分)

quick_sort(l,start+

1,j)

# 分治(後半部分)

l =[1

,0,4

,2,7

,5,9

,3]quick_sort(l,0,

len(l)-1

)print

(l)

python資料結構與演算法

coding utf 8 import sys 使用以下語句將引數的str格式轉換為int格式 l list map int sys.argv 1 split target int sys.argv 2 def binarysearch print l print target left 0 rig...

資料結構與演算法 python

元類 基礎 冒泡 它重複地走訪要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端,故名氣泡排序。def bubble sort alist ...

python演算法與資料結構

若n1 n2 n3 1000,且n1平方 n2平方 n3平方 n1,n2,n3為自然數 求出所有n1 n2 n3可能的組合?n1 0 n2 0 n3 0 判斷n1 n2 n3是否等於1000,之後變n3 1,n3 2,n3 3,然後再變n2 那如果變為 n1 n2 n3 2000 了呢?思路1 實現...