這部分的**實現的操作是,對乙個列表裡面的字串按照字母順序排序,就像字典裡面的單詞排序一樣,舉例子如下:
input = ['jkttsszzo', 'zie', 'iukddrjdba', 'bwjahzwiv', 'yslzvnjdjg', 'xkm', 'aszcnljjl', 'syniimbq', 'hqgyd', 'itvis']
output = ['aszcnljjl', 'bwjahzwiv', 'hqgyd', 'itvis', 'iukddrjdba', 'jkttsszzo', 'syniimbq', 'xkm', 'yslzvnjdjg', 'zie']
input是排序之前的word列表,output是排序之後的word列表。
整體**如下所示:
#這裡是生成26個小寫字母的程式
char_list = [chr(x) for x in range(97,123)]
print(char_list)
word_list=# 利用程式自動生成乙個word列表,開始設定為空
for i in range(10): # 定義生成的word的數量
word = ''
length = random.randint(3,10) # 每個生成的word包含的字元的數量是3到10之間的隨機數,這個可以任意設定
for j in range(length ):
word = word + chr( random.randint(97,122) )
print(word_list)
def sort_word_list(word_list):
max_length = len(word_list[0])
for i in range(1,len(word_list)):#獲得這個列表中最長的字串的長度
if len(word_list[i]) > max_length:
max_length = len( word_list[i] )
print(max_length)
for i in range(max_length):
bucket = {}
for x in char_list:
bucket[x] =
for x in word_list:
temp_word = x + "z"*(max_length - len( x ))
else:
temp_word = x
index = 0
for k in char_list:
if (len(bucket[k])) != 0:
for y in bucket[k]:
word_list[index] = y
index = index + 1
print(word_list)
sort_word_list(word_list)
注釋基本上都在**中進行了講解。 基數排序 RadixSort
基數排序 以整形為例 將整形10進製按每位拆分,然後從低位到高位依次比較各個位。主要分為兩個過程 1 分配,先從個位開始,根據位值 0 9 分別放到0 9號桶中 比如53,個位為3,則放入3號桶中 2 收集,再將放置在0 9號桶中的資料按順序放到陣列中 重複 1 2 過程,從個位到最高位 比如32位...
Radix sort 基數排序
有關 gpu並行程式設計 英文 cuda programming a developer s guide to parallel computing with gpus 第六章 中基數排序,其中並行排序的多執行緒排序,由於沒有具體較為詳細的介紹,對於初次接觸多執行緒的人略微困難。本文較為詳細的介紹此...
基數排序 Radix Sort
基數排序是在某種情況下比快速排序還快的排序.當然了,計數排序 counting sort 也有可能比快速排序快.計數排序非常容易理解,時間複雜度是o max a i 如果資料範圍很小的話,計數排序有巨大優勢.而基數排序,則更進一步,對每一位進行計數排序.這樣時間複雜度降為o n log max a ...