From fe198c160b652f68eeacee6fb73b018570227a97 Mon Sep 17 00:00:00 2001 From: p6voizrua <15517311810@qq.com> Date: Fri, 18 Feb 2022 10:10:48 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E6=A1=B6=E6=8E=92=E5=BA=8F.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 桶排序.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/桶排序.cpp b/桶排序.cpp index 1626320..ae193e5 100644 --- a/桶排序.cpp +++ b/桶排序.cpp @@ -46,4 +46,18 @@ int main() int raw[] = { 49,38,65,97,76,13,27,49 }; int size = sizeof(raw) / sizeof(int); bucket_sort(raw, size, 10); -} \ No newline at end of file +} + +/*三、桶排序算法特点 +1.时间复杂度 +桶排序算法遍历了2次原始数组,运算量为2N,最后,遍历桶输出排序结果的运算量为N,初始化桶的运算量为M。 + +对桶进行排序,不同的排序算法算法复杂度不同,冒泡排序算法复杂度为O(N^2),堆排序、归并排序算法复杂度为O(NlogN),我们以排序算法复杂度为O(NlogN)进行计算,运算量为N/M*log(N/M)*M + +最终的运算量为3N+M+N/M*log(N/M)*M,即3N+M+N(logN-logM),去掉系数,时间复杂度为O(N+M+N(logN-logM)) + +2.空间复杂度 +桶排序算法排序过程中新建了一个桶和一个输出数组,所以算法的空间复杂度是O(N+M) + +3.稳定性 +桶排序算法在对每个桶进行排序时,选择稳定的排序算法,则排序后,相同元素的位置不会发生改变,所以桶排序算法是一种稳定的排序算法*/