桶排序:
桶排序可以理解為簡化版的計數排序,自然地限制條件就更多,適用範圍更窄,原理跟計數排序類似,而且比較簡單;
桶排序大概比較適合於元素為正整數,且最大值不太大地情形,而計數排序還適用於整數(可含負整數),跨度不太大的情形,兩者都不適用於字串排序。
時間複雜度:o(n+k);
**實現(桶排序):
# include
# include
# include
intmain
(void
)int
max(
int a,
int)
;int max =
max(a,n)
;int
*bucketsort
(int a,
int,
int)
;int
* result =
bucketsort
(a,max,n)
;//排序並將排好序的陣列首位址傳給result
for(i =
0;i1;i++
)//輸出
}free
(result)
;return0;
}int
max(
int a,
int n)
//求最大值函式
}return max;
}int
*bucketsort
(int a,
int max,
int n)
//桶排序函式
return bucket;
}
菜雞筆記之 希爾排序
希爾排序 時間複雜度 平均o nlogn 穩定性 不穩定排序 思路 將資料分組,每相隔step 步長 對每一組進行插入排序。希爾排序為插入排序的進一步優化 實現 希爾排序 include include intmain void 輸入陣列 for int i 0 i 排序 void shellsor...
菜雞筆記之 歸併排序
歸併排序 將資料一步步細分,對每一部分進行排序,在將各個部分合起來排序 實現 歸併排序 include include include intmain void 輸入 for int i 0 i 排序 void mergesort int int,int,int void merge int int...
菜雞筆記之 計數排序
計數排序 計數排序是非比較排序,它是分布排序,其時間複雜度可以突破nlogn達到o n 但是其適用範圍相對較小,不適合字串比較,不適合資料跨度較大的陣列的排序。時間複雜度 o n 穩定性 穩定排序 思路 1 開乙個與原始陣列一樣大的陣列result,用於排序後儲存結果 2 開乙個臨時陣列temp,其...