程式設計師演算法新手入門必修課 二 基數排序

2021-10-12 01:12:12 字數 1341 閱讀 4910

謝邀,今天的天氣是真的冷,此時有人給自己暖手,是多麼的幸福啊,回寢室肝一篇基數排序的部落格

此時還是演算法學習前期生涯,還是個小菜雞,雖然沒人看就自己記錄一下學習生涯吧!

下面先貼**含注釋

def

radix_sort

(array)

: max_num =

max(array)

# 陣列中的最大值

# place = 1

# while max_num > 10*place:

# place += 1

# place 記錄此序列位數if0

< max_num <9:

place =

1# 1位數

elif

10< max_num <99:

place =

2# 2位數

elif

101< max_num <

999:

place =

3# 3位數

else

: place =

4# 因為現在接觸的都是小數字最大的就設定為4位數了

for i in

range

(place)

:# i從0開始首先排個位數

# buckets: [,,,,,,,.,]

buckets =[[

]for _ in

range(10

)]for num in array:

# 迴圈遍歷array裡面的元素

radix =

int(num/(10

**i)%10

)# 獲取該數的個位數

# 例如17就放置在buckets第八個列表中(從0開始計數)

buckets[radix]

# 放置buckets中

j =0# 從零開始計數

for k in

range(10

):for num in buckets[k]

:# 第一次迴圈排個位數,第二次十位數......

array[j]

= num # 將buckets列表排好的數字放置array中

j +=

1return array

if __name__ ==

'__main__'

: array =[25

,17,33

,17,22

,13,32

,15,9

,25,27

,18]print

(radix_sort(array)

)

多執行緒 程式設計師必修課

程序 計算機概念,程式在執行的時候,記錄當前程式對於計算機的各種資源的消耗的一種記錄,虛擬出來的 程序是乙個具有一定獨立功能的程式在乙個資料集上的一次動態執行的過程,是作業系統進行資源分配和排程的乙個獨立單位 程序具有的特徵 動態性 程序是程式的一次執行過程,是臨時的,有生命週期,是動態產生,動態消...

程式設計師新手入門須知

作為一名碼農新手,對於 的bug和debug的刻骨銘心我深有體會。這裡就按我自己的經歷寫幾件需要注意的事情 ps 高手就不用看了,寫的很淺,我也是新手 1.坤哥是帶著我做前端技術的,他是技術大牛,在我眼裡他厲害的不行。而我經常弱智到可以把他氣死,因為我問的問題都很簡單。過來人都知道,被乙個剛入門檻的...

從程式設計師成長為架構師的技術必修課

一位技術大牛在談到 技術人最重要的能力是什麼 時曾提出乙個觀點 你所解決問題的複雜度決定了你技術實力的高度。問題越複雜,解決問題所需要的技術實力就越高,也就越能體現乙個人的價值。大部分的技術人員在工作中主要是編寫業務邏輯 以至於不少程式設計師總是有年齡上的焦慮,擔心 30 歲 35 歲以後如果還在做...