快速排序2 python

2021-08-26 12:38:23 字數 1353 閱讀 3193

from __future__ import print_function

defquick_sort

(array)

:"""

快速排序:不穩定,

演算法思想:

首先在要排序的序列 a 中選取乙個中軸值,而後將序列分成兩個部分,

其中左邊的部分 b 中的元素均小於或者等於 中軸值,右邊的部分 c

的元素 均大於或者等於中軸值,而後通過遞迴呼叫快速排序的過程分別

對兩個部分進行排序,最後將兩部分產生的結果合併即可得到最後的排序

序列。examples:

>>> quick_sort([0, 5, 3, 2, 2])

[0, 2, 2, 3, 5]

>>> quick_sort()

>>> quick_sort([-2, -5, -45])

[-45, -5, -2]

"""array_length =

len(array)

if( array_length <=1)

:return array

else

:#預設把第乙個元素值當做中軸

pivot = array[0]

#找出比中軸值大的元素

greater =

[ element for element in array[1:

]if element > pivot ]

#找出比中軸值小的元素

lesser =

[ element for element in array[1:

]if element <= pivot ]

#遞迴,分別對左、右半部分進行劃分

return quick_sort(lesser)

+[pivot]

+ quick_sort(greater)

if __name__ ==

'__main__'

:try

:raw_input

# python 2

except nameerror:

raw_input

=input

# python 3

user_input =

raw_input

('enter numbers separated by a comma:\n'

).strip(

) unsorted =

[int

(item)

for item in user_input.split(

',')

]print

( quick_sort(unsorted)

)

python入門2 Python入門2

1列表和元組 列表 當索引超出了範圍時,python會報乙個indexerror錯誤 usr bin env python3 coding utf 8 列印s的1,v,9.注意 索引計數從 0 開始 s 1,2,3 a v b 7,8,9 列印1 print s 0 0 列印v print s 1 ...

2 Python內建函式

位元組陣列和位元組,3個引數 source,encoding,errors 當source引數為字串時,encoding引數也必須提供,函式將字串使用str.encode方法轉換成位元組陣列 當3個引數都不傳的時候,返回長度為0的位元組陣列 當source引數為整數時,返回這個整數所指定長度的空位元...

2 Python環境安裝

python官網 www.python.org windows版本 windows下一鍵環境安裝包,對於python2.x與python3.x,建議使用python3.x。安裝完畢後,左下角搜尋python,開啟idle python 3.7 64 bit 開啟option配置字型及大小。cento...