From 2b8252ce2c9ff354bff3137f8aed7ca49ffcd734 Mon Sep 17 00:00:00 2001 From: pmkfqw2gu <2511089200@qq.com> Date: Thu, 17 Feb 2022 22:32:33 +0800 Subject: [PATCH] =?UTF-8?q?Add=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 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 桶排序.cpp diff --git a/桶排序.cpp b/桶排序.cpp new file mode 100644 index 0000000..7cfbe84 --- /dev/null +++ b/桶排序.cpp @@ -0,0 +1,55 @@ +9.3 代码 +#include +#define Max_len 14 //数组元素个数 + +void Show(int arr[], int n) +{ + int i; + for ( i=0; i maxVal) + maxVal = arr[i]; + } + return maxVal; //返回最大值 +} + +//桶排序 参数:数组及其长度 +void BucketSort(int arr[] , int len) +{ + int tmpArrLen = GetMaxVal(arr , len) + 1; + int tmpArr[tmpArrLen]; //获得空桶大小 + int i, j; + for( i = 0; i < tmpArrLen; i++) //空桶初始化 + tmpArr[i] = 0; + for(i = 0; i < len; i++) //寻访序列,并且把项目一个一个放到对应的桶子去。 + tmpArr[ arr[i] ]++; + for(i = 0, j = 0; i < tmpArrLen; i ++) + { + while( tmpArr[ i ] != 0) //对每个不是空的桶子进行排序。 + { + arr[j ] = i; //从不是空的桶子里把项目再放回原来的序列中。 + j++; + tmpArr[i]--; + } + } +} +int main() +{ //测试数据 + int arr_test[Max_len] = { 22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 35, 9, 70 }; //排序前数组序列 + Show( arr_test, Max_len );//排序 + BucketSort( arr_test, Max_len);//排序后数组序列 + Show( arr_test, Max_len ); + return 0; +} + +9.4 运行时间 +0.007088s \ No newline at end of file