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...