基於python的中心點快速排序

2021-10-01 01:40:40 字數 1024 閱讀 6151

quick sort 的核心思想是需要選擇乙個數為中心數,然後用其他數和這個數作比較,比中心數小的排左邊,大的排右邊。經過這個過程,中心點左右兩邊的數分別組成了乙個 list ,再照上述方法,對這兩個 list 進行中心點選擇,並把小的排左邊,大的排右邊。重複這個過程,直到 list 的長度小於等於1。**如下。

def

_quick_sorted

(nums:

list)-

>

list:if

len(nums)

<=1:

return nums

pivot = nums[0]

# 選擇第乙個數為中心點,在遞迴呼叫的時候,中心點的值會根據不同的list而變化

left_nums = _quick_sorted(

[x for x in nums[1:

]if x < pivot]

)# 遞迴呼叫

right_nums = _quick_sorted(

[x for x in nums[1:

]if x >= pivot]

)return left_nums +

[pivot]

+ right_nums

defquick_sorted

(nums:

list

, reverse =

false)-

>

list

:"""quick sort"""

nums = _quick_sorted(nums)

if reverse:

nums = nums[::

-1]return nums

l =[1,

3,5,

7,9,

2,4,

6,8,

0]# list for test

l = quick_sorted(l, reverse =

false

)print

(l)

找出多邊形的中心點

找出多邊形的中心點 b2vec2 findcentroid vector vertices 代替box2d 做檢查,我自己處理異常總比box2d報錯直接導致程式不能再執行了的強 if area flt epsilon else return c b2vec2 findcentroid b2vec2 ...

KMeans K值以及初始類簇中心點的選取

給定乙個合適的類簇指標,比如平均半徑或直徑,只要我們假設的類簇的數目等於或者高於真實的類簇的數目時,該指標上公升會很緩慢,而一旦試圖得到少於真實數目的類簇時,該指標會急劇上公升。當k取值5時,類簇指標的下降趨勢最快,所以k的正確取值應該是5.確定k個初始類簇中心點 首先隨機選擇乙個點作為第乙個初始類...

求取多邊形矩形包圍框的中心點方法

今天下午做了一下遊戲功能的擴充,不料又落馬了,記錄一下 求取多邊形的中心位置 該方法是最原始版,之前因為用的少,所以沒有發覺到邏輯上存在錯誤 added by bruce yang on 2012.09.02.15.30 實踐證明,這個方法的邏輯是錯誤的,汲取這個教訓 b2vec2 getpolyc...