1. 程式人生 > 實用技巧 >用Python自動清理電腦內重複檔案,只要10行程式碼就夠了

用Python自動清理電腦內重複檔案,只要10行程式碼就夠了

技術標籤:資料結構python

今天看到一個簡單又感覺巧妙的排序——桶排序

在這裡插入圖片描述

如圖所示,我們如何對5 3 5 2 8(0分-10分數範圍內)進行排序?

  • 首先我們需要準備好題意0-10整個範圍的桶li_tong,其中len(li_tong)=11,其中桶陣列中的index表示0-10範圍內的順序分數值,陣列中每個index下的值表示每個分數在帶排序資料中出現的次數
  • 然後把帶排序的數字都放入桶陣列中的各個桶中
  • 最後將各個桶的代表的分數值順序打印出來,則是排序後的結果,其中每個分數需要列印每個桶中的數字也就是帶排序陣列中數字出現的次數,便得到了最後的結果!程式碼如下“
def sorted_string(string)
: li_tong = [0 for i in range(11)] for s in string: li_tong[s] += 1 for index, value in enumerate(li_tong): print(index, value) if value != 0: for i in range(value): print(index, end=" ")

這樣排序真的很簡單快速,但是缺點是浪費空間,如果數字範圍比較大,出現的數字量少,那就會十分浪費空間。比如,例子中開闢了一塊長度為11的空間區域,但是其實只使用了其中4個。

本文參考https://wiki.jikexueyuan.com/project/easy-learn-algorithm/bucket-sort.html