def quick_sort(alist, start, end):
"""快速排序"""
if start >= end:
return
mid = alist[start]#儲存列表的第乙個元素
left = start #開始
right = end #結尾
# left與right未重合,就向中間移動
while left < right:#left小於right執行下面的操作
while left < right and alist[right] >= mid:#新增left小於right
right -= 1#right 向左移動
alist[left] = alist[right] #當left < right不成立時賦值元素新增left小於right
while left < right and alist[left] < mid:
left += 1#left向右邊走
alist[right] = alist[left] #賦值
# 從迴圈退出後,left與right相遇,即left==right
alist[left] = mid
# 對左邊部分執行快速排序
quick_sort(alist, start, left-1)#使用遞迴演算法從start到left-1執行上面的操作
# 對右邊部分執行快速排序
quick_sort(alist, left+1, end)
if __name__ == '__main__':
li = [54, 26, 93, 17, 77, 31, 44, 55, 20]
print(li)
quick_sort(li, 0, len(li)-1)
print(li)
快速排序的方法是 :先找乙個數然後 從左邊和右邊同時比較 相遇是就是這個元素的位置
快速排序最優時間複雜度為o(n)legn 最壞的時間複雜度為o(n^n)
穩定性:不穩定
找工作之Effective C
1 盡量以const,enum,inline替換 define 2 const出現在星號左邊,表明指物是常量 出現在星號右邊,指標是常量。3 mutable修辭可以突破const限制,在被const修辭的函式裡面也能被修改 4 運用const成員函式實現non const版本可以避免 重複 5 co...
找工作資料 死鎖
什麼是死鎖?作業系統中有若干程序併發執行,它們不斷申請 使用 釋放系統資源,雖然系統的程序協調 通訊機構會對它們進行控制,但也可能出現若干程序都相互等待對方釋放資源才能繼續執行,否則就阻塞的情況。此時,若不借助外界因素,誰也不能釋放資源,誰也不能解除阻塞狀態。根據這樣的情況,作業系統中的死鎖被定義為...
年後找工作必看,這樣的簡歷才能打動HR!
冗長且毫無重點的簡歷如何能抓住hr的心?簡歷上寫什麼才能吸引hr的眼球?當然是讓人眼前一亮的能力特長,或是恰好與該職位匹配的技能。根據前程無憂論壇的網上調查結果顯示,豐富的工作經驗 不出意外地成為hr在看簡歷時最為看重的要素。但現實中,不少求職者會把 工作經驗 部分寫成 個人編年史 疏於對資訊量進行...