1、桶排序
可以排序的范围数较小,是一种以空间换时间的排序算法;
不考虑重复元素的出现---->桶排;解决方案在计数排序;
(1)、代码实现
#include<stdio.h>
void bucketSort(int *a, int count);
void showArray(int *a, int count);
void showArray(int *a, int count){
int i;
for(i = 0; i < count; i++){
printf("%d ", a[i]);
}
printf("\n");
}
void bucketSort(int *a, int count){
int b[10] = {0}; //知道要排序值的最大范围
int i;
int n = 0;
for(i = 0; i < count; i++){
b[a[i]]++;
}
for(i = 0; i < 10; i++){
if(b[i]){
a[n++] = i;
}
}
}
void main(void){
int a[] = {3, 5, 1, 8, 9, 6};
int count = sizeof(a)/sizeof(int);
bucketSort(a, count);
showArray(a, count);
}(2)、结果截图
(3)、算法分析
时间复杂度:O(n);
本文出自 “wait0804” 博客,请务必保留此出处http://wait0804.blog.51cto.com/11586096/1899020
原文:http://wait0804.blog.51cto.com/11586096/1899020