python找工作必看之資料結構(快速排序)

2021-09-18 04:30:58 字數 1081 閱讀 9502

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在看簡歷時最為看重的要素。但現實中,不少求職者會把 工作經驗 部分寫成 個人編年史 疏於對資訊量進行...