桶排序(Bucket Sort)----(排序算法七)
2013-10-24 19:34
489 查看
1.算法原理
将元素的值放入另一数组下标与其相等的位置排序前: 6 2 4 1 5 9
桶中:bucket[10]= 0 1 2 0 4 5 6 0 0 9
有bucket[6]=6,bucket[2]=2,bucket[4]=4,bucket[1]=1,bucket[5]=5,bucket[9]=9
2.代码实现
#include <stdio.h> //printArray打印出数组 void printArray(int a[],int size){ // printf("数组为:[%d] ",a[0]); for (int i=0;i<size;i++) { printf(" %x ",a[i]); } printf("\n"); } void main() { int a[6] ={ 6, 2, 4, 1, 5, 9 }; int len=6; //分配空桶 int bucket[10]={0} ; printf("排序前:"); printArray(a,len); //直接以每个待排数字为索引,将自己的值赋值给当前桶 for (int i = 0; i < len; i++) { bucket[a[i]] = a[i]; } //跳过值为0的空桶,顺序输出即可 int temp=0; for (int j = 0; j < 10; j++){ if (bucket[j] > 0) a[temp++]=bucket[j]; } printf("排序后:"); printArray(a,len); }
3.排序结果
排序前: 6 2 4 1 5 9 排序后: 1 2 4 5 6 9
相关文章推荐
- 桶排序(Bucket Sort)----(排序算法七)
- 桶排序(Bucket Sort)
- 算法排序之最简单最快的排序--桶排序(Bucket Sort)
- 桶排序(Bucket Sort)
- 简化的桶排序(Bucket Sort)
- bucket sort——桶排序
- 桶排序(BucketSort)思想与实现
- 算法总结系列之六: 桶排序(Bucket Sort)
- Bucket sort 桶排序(含EOF)
- 桶排序(BucketSort)
- 基于非比較的排序:计数排序(countSort),桶排序(bucketSort),基数排序(radixSort)
- 桶排序(bucket sort)
- 计数排序(Counting Sort)、桶排序(Bucket Sort)和基数排序(Radix Sort)
- bucket sort 桶排序
- 桶排序(Bucket Sort)
- 桶排序(Bucket Sort)
- 桶排序(Bucket Sort),基数排序(Radix_Sort)
- 桶排序(Bucket Sort)
- (四)分配排序:桶排序(Bucket Sort)
- 桶排序和样本排序(Bucket Sort and Sample Sort)