线性排序之计数排序
2013-05-18 11:03
183 查看
要求数的范围0到range,时间复杂度为O(n)
/** * @brief counting sort * @author An * @data 2013.5.18 **/ int* CountingSort( int *array, int length, int range ) { int *count = new int[range + 1]; int *res = new int[length]; for ( int i = 0; i <= range; ++i ) { count[i] = 0; } for ( int i = 0; i < length; ++i ) { count[ array[i] ]++; } for ( int i = 1; i <= range; ++i ) { count[i] += count[i - 1]; } for ( int i = length - 1; i >= 0; --i ) { res[ count[ array[i] ] - 1 ] = array[i];// index is from 0! --count[ array[i] ]; } delete [] count; return res; }
相关文章推荐
- 线性时间排序:计数排序、计数排序、桶排序
- 线性排序之计数排序
- 《算法导论》第8章 线性时间排序 (1)计数排序
- 排序算法之线性排序(计数排序和桶排序)--Java语言
- [算法学习]线性时间排序:计数排序、基数排序和桶排序
- 《算法导论》第8章 线性时间排序 (1)计数排序
- 【算法导论-学习笔记】以线性时间增长的排序——计数排序
- 算法导论:第8章 线性时间排序__计数排序
- 线性时间排序之计数排序,基数排序和桶排序
- 《算法导论》第8章 线性时间排序 (1)计数排序
- 【算法学习】线性时间排序-计数排序、基数排序和桶排序详解与编程实现
- Java 三种线性排序之计数排序
- 《算法导论》第8章 线性时间排序 (1)计数排序
- 线性时间排序:计数排序、基数排序、桶排序
- 排序及选择算法的java实现(三)计数排序、计数选择、随机选择、最差线性时间选择
- (1.3.6)线性排序:计数排序
- 【算法导论】线性时间排序-计数排序、基数排序及桶排序
- 三大线性排序之计数排序
- 各种线性排序记录(计数排序,基数排序,桶排序) 及 希尔排序
- 第八章 线性时间排序 8.2 计数排序