算法:桶排序
通排序非常浪費空間, 比如需要排序的範圍在0~2000
之間, 需要排序的數是[3,9,4,2000], 同樣需要2001個空間
註意: 通排序不能排序小數
def bucketSort(nums):
# 選擇一個最大的數
max_num = max(nums)
# 創建一個元素全是0的列表, 當做桶
bucket = [0]*(max_num+1)
# 把所有元素放入桶中, 即把對應元素個數加一
for i in nums:
bucket[i] += 1
# 存儲排序好的元素
sort_nums = []
# 取出桶中的元素
for j in range(len(bucket)):
if bucket[j] != 0:
for y in range(bucket[j]):
sort_nums.append(j)
return sort_nums
nums = [5,6,3,1,65,2]
print(bucketSort(nums))
x
算法:桶排序
相關推薦
算法:桶排序
之間 [0 一個 nbsp 列表 for 小數 str 選擇 通排序非常浪費空間, 比如需要排序的範圍在0~2000之間, 需要排序的數是[3,9,4,2000], 同樣需要2001個空間 註意: 通排序不能排序小數 def bucketSort(nums): #
算法:插入排序
-- break -1 nbsp 算法 bre length print else int[] arr={8,3,2,7,1};for(int i=1;i<arr.length;i++){ int temp=arr[i]; int j; for(j=
算法:堆排序
tint get d+ turn 大於 初始 -s html 參考 堆排序可歸納為兩個操作: 1)建堆:根據初始數組去構造初始堆(構建一個完全二叉樹,保證所有的父結點都比它的孩子結點數值大)。 2)調整堆:每次交換第一個和最後一個元素,輸出最後一個元素(最大值),
[ 轉載 ] js十大排序算法:冒泡排序
排序算法 span lan str ref bsp clear size spa http://www.cnblogs.com/beli/p/6297741.html[ 轉載 ] js十大排序算法:冒泡排序
算法1 排序算法:冒泡排序和快速排序
end 實現 sub 順序 們的 思想 復雜 swa ima 排序是我們生活中經常會面對的問題。同學們做操時會按照從矮到高排列;老師查看上課出勤情況時,會按學生學號順序點名;高考錄取時,會按成績總分降序依次錄取等。排序是數據處理中經常使用的一種重要的運算,它在我們的程序開發
Java排序算法:冒泡排序
JavaJava排序算法:冒泡排序 //創建數組並賦值 int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000}; for(int i=0;i < arr.length-1;i++){
PHP排序算法:選擇排序
找到 例如 ray ++ 內置 位數 RR str int 在PHP中實現數字排序很簡單,我們可以將字符串轉成數組,例如: $string = ‘94132768‘; 通過 $arr = str_split(($string); 轉成數組:$arr = array(9,4
排序算法之——桶排序
直接插入 bsp truct 不同 n-n 情況下 oid size span 這是本人的第一篇隨筆,為的是分享學習經驗,和大家討論一些算法,以便取得些許進步,也是對學習的總結。 話不多說,下面我會用圖文的方式向各位介紹桶排序。 1、主要思想: 桶排序的大體思路就是先將
排序算法之桶排序PC蛋蛋源碼下載 的深入理解以及性能分析
以及 6.4 通過 一個數 排序算法 數據 計算 步驟 最大 找到數組中的最大PC蛋蛋源碼下載聯系方式:QQ:2747044651 網址http://zhengtuwl.com 值194和最小值13,然後根據桶數為5,計算出每個桶中的數據範圍為(194-13+1)/5=36
排序算法: 插入排序
時間復雜度 插入 插入排序 移動 urn 元素 highlight light space 算法分析 (1)時間復雜度 從時間來看,排序的基本操作為:比教兩個關鍵字的大小移動記錄。 #include<iostream> #include<vector&g
排序算法下——桶排序、計數排序和基數排序
開始 http 數字 基於 分析 數據存儲 線性 尋找 排好序 桶排序、計數排序和基數排序這三種算法的時間復雜度都為 $O(n)$,因此,它們也被叫作線性排序(Linear Sort)。之所以能做到線性,是因為這三個算法是非基於比較的排序算法,都不涉及元素之間的比較操作。
算法筆記-桶排序、計數排序、基數排序
.... img tex continue += 序列 nlogn $max part 三種時間復雜度是 O(n) 的排序算法:桶排序、計數排序、基數排序。因為這些排序算法的時間復雜度是線性的,所以我們把這類排序算法叫作線性排序(Linear sort)。 桶排序(B
算法:快速排序
tar 比較 oca lua blog net for 算法實現 pri 算法參考:快速排序(三種算法實現和非遞歸實現) 上面這篇文章對快排講解得不錯。快排概念詳述請點上面鏈接。 記錄一下,用lua實現的快排,以及一些註意的地方。 交換函數: funct
JavaScript 常用的排序算法:冒泡排序與快速排序
sort 一個數 最大值 ray 原理 數字 class ret 坐標 冒泡排序 function bubbleSort(array) { for (let i = 0; i < array.length; i++) for (let j =
排序算法一:桶排序
family getch 電子郵箱 -s class csharp soft n) 郵件 在我們的生活的這個世界到處都是被排序過的東西。站隊的時候會按照身高排序,考試的名次需要按照分數排序,網上購物的時候會按照價格排序,電子郵箱中的郵件按照時間排序……可以說排序無處不在
算法2 排序算法:直接選擇排序和堆排序
重新 父親 i++ 快速排序 selection left http edi spl 上一篇總結了交換排序的冒泡排序和快速排序。這一篇要總結的是選擇排序,選擇排序分為直接選擇排序和堆排序,主要從以下幾點進行總結。 1、直接選擇排序及算法實現 2、堆排序及算法實現
java實現排序算法:快排、冒泡排序、選擇排序、插入排序、歸並排序
結果 快速 post ont pla emp string () tro 一、概述:本文主要介紹常見的幾種排序算法的原理以及java實現,包括:冒泡排序、選擇排序、插入排序、快速排序、歸並排序等。 二、冒泡排序: (1)原理: 1、從第一個數據開始,與第二個數據相比較,
算法:希爾排序
org any 小數 wiki 增加 mini for num 循環 算法:希爾排序 快速開始 百科解釋 希爾排序(Shell‘s Sort)是插入排序的一種又稱“縮小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一種更高效的改
PHP排序算法:二維數組排序
code des 學生 最小 tis 自帶函數 name esc iso 二維數組排序,比如一個學生成績數組: $arr[] = array(‘name‘=>‘a‘,‘score‘=>9); $arr[] = array(‘name‘=>‘c‘,‘sco
算法:2選擇排序
lex 開始 spa app sort sele 方法 arr 思路 選擇排序 時間:O(n^2) 實現功能:將數組元素按從小到大的順序排列。 思路:先找出數組中的最小元素,將最小的元素復制給新的數組。 使用python實現。(python中列表與數組