關於前端 Vue 框架面試題,面試可能會被問到哪些?
阿新 • • 發佈:2021-07-13
每個桶存放一定範圍的數,再對桶內的數進行排序。
def but_sort(li, n=100, max_num=10000): """ :param li: 待排序的序列 :param n: 桶的個數 :param max_num: 最大值 :return: 排序後的序列 """ # 1. 建立桶 buckets = [[] for _ in range(n)] # 2.將序列的中的數放到對應的桶裡 for value in li: # max_num//n代表一個桶內放幾個數 i_b = min((value // (max_num//n)), n-1) buckets[i_b].append(value)# 保持桶內順序 for j in range(len(buckets[i_b])-1, 0, -1): if buckets[i_b][j] < buckets[i_b][j-1]: buckets[i_b][j], buckets[i_b][j-1] = buckets[i_b][j-1], buckets[i_b][j] else: break sorted_li = [] for b in buckets: for i inb: sorted_li.append(i) return sorted_li
li = [random.randint(0,10000) for i in range(100000)]
# print(li)
li = but_sort(li)
print(li)
print(len(li))