数据结构例程——简单的计数排序
来源:互联网 发布:mysql主从同步原理 编辑:程序博客网 时间:2024/06/14 09:49
本文是[数据结构基础系列(9):排序]中第9课时[简单的计数排序]的例程。
#include <stdio.h>#include <malloc.h>#define MaxSize 20#define MaxNum 100typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他数据项,类型为InfoType} RecType; //排序的记录类型定义void CountSort(RecType R[],int n){ int i, j, k; int C[MaxNum+1] = {0}; /*用于计数的C数组的所有元素初值为0*/ for(i=0; i<n; i++) C[R[i].key]++; /*例如,R[i].key为6时,C[6]++,C[R[i].key]是R[i].key出现的次数*/ k=0; for(j=0; j<=MaxNum; j++) /*考察每一个j*/ for(i=1; i<=C[j]; i++) /*j=R[j].key出现过C[j]个,此即是排序的结果*/ R[k++].key=j;}int main(){ int i,n=10; RecType R[MaxSize]; KeyType a[]= {6,1,12,6,18,1,18,7,0,6}; for (i=0; i<n; i++) R[i].key=a[i]; printf("排序前:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); CountSort(R,n); printf("排序后:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); return 0;}
0 0
- 数据结构例程——简单的计数排序
- 算法导论例程——计数排序
- 数据结构例程——拓扑排序
- 数据结构例程——归并排序
- 简单的计数排序
- 简单的计数排序
- 数据结构例程——插入排序之直接插入排序
- 数据结构例程——插入排序之希尔排序
- 数据结构例程——交换排序之冒泡排序
- 数据结构例程—— 交换排序之快速排序
- 数据结构例程——选择排序之直接选择排序
- 数据结构例程——选择排序之堆排序
- 数据结构例程——单链表的建立
- 数据结构例程——图的遍历
- 数据结构——简单的冒泡排序
- 计数排序的简单实现
- 数据结构例程——哈夫曼树
- 数据结构例程——二叉排序树
- 51单片机复习题
- 1086. Tree Traversals Again
- 学习记录:基于adaboost的人脸检测
- 电子或通信领域当前的主流技术及其社会需求调查报告
- Android项目——Spinner的使用
- 数据结构例程——简单的计数排序
- 第七周实践项目5—排队看病模拟
- NEUOJ 1660 (容斥+矩阵)
- 通过ThreadLoad实现线程范围内的共享变量
- Autolayout与CATransform3D共同使用引发的问题解决
- Android 各国语言缩写及简称详细介绍
- JS温习:基础(一)变量,常量,数据类型
- OC学生成绩管理类(三 Student学生类)
- JS温习:基础(二)运算符