计数排序
来源:互联网 发布:js时间选择器 编辑:程序博客网 时间:2024/06/05 10:03
- 基本思想
- 参考代码
- 图示
回到顶部
基本思想
假设数序列中小于元素a的个数为n,则直接把a放到第n+1个位置上。当存在几个相同的元素时要做适当的调整,因为不能把所有的元素放到同一个位置上。计数排序假设输入的元素都是0到k之间的整数。
回到顶部
参考代码
#include <stdio.h>void COUNTINGSORT(int *A, int *B, int array_size, int k){ int C[k+1], i, value, pos; for(i=0; i<=k; i++) { C[i] = 0; } for(i=0; i< array_size; i++) { C[A[i]] ++; } for(i=1; i<=k; i++) { C[i] = C[i] + C[i-1]; } for(i=array_size-1; i>=0; i--) { value = A[i]; pos = C[value]; B[pos-1] = value; C[value]--; }} int main(){ int A[8] = {2, 5, 3, 0, 2, 3, 0, 3}, B[8], i; COUNTINGSORT(A, B, 8, 5); for (i=0; i<= 7; i++) { printf("%d ", B[i]); } printf("\n"); return 0;}
回到顶部
图示
对于数据2 5 3 0 2 3 0 3程序执行的过程如下图所示:
阅读全文
0 0
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- SolrCloud之分布式索引及与Zookeeper的集成
- java 集合 标识散列映射 及相关知识与实例
- win10装anaconda3-4.2.0、python3.5、opencv3.0和tensorflow1.2(gpu)
- Ubuntu Linux系统下Eclipse中配置Tomcat遇到的问题
- C语言析构方法,构造方法问题
- 计数排序
- 77. Combinations
- Git的使用——解决中文乱码
- 使用ado访问excel中的数据
- 堆栈的区别
- SpringMVC入门简单实例
- 网络随笔(三)------Http之Get/Post请求区别
- UNIX环境编程学习笔记(8)——文件I/O之校验当前登录用户对文件的访问权限
- php-fpm超时、进程内存、慢日志配置,参数配置等