一、桶排序算法
能夠排序的範圍數較小,是一種以空間換時間的排序算法;ide
不考慮重複元素的出現---->桶排;解決方案在計數排序;
spa
(1)、代碼實現blog
#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)、算法分析get
時間複雜度:O(n);
it