码迷,mamicode.com
首页 > 编程语言 > 详细

年龄排序(计数排序)

时间:2016-09-19 17:33:25      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

/*
员工年龄排序,主要用计数排序的思想,时间复杂度为o(n),需要固定大小的额外辅助空间 */ #include<stdio.h> #include<string.h> /* 计数排序,员工年龄可定在0-99之间 void *memset(void *s, int ch, size_t n) 函数解释:将s中当前位置后面的n个字 节 (typedef unsigned int size_t )用 ch 替换并返回 s 。memset:作用是一 段内存块中填充某个给定的值,它是对 较大的结构体或数组进行清零操作的一种 最快方法[1]。 */ void SortAge(int ages[],int len) { if(ages==NULL||len<1) return ; int timesOfAge[100]; memset(timesOfAge,0,sizeof(timesOfAge)); int i; //计算每个年龄员工的个数 for(i=0;i<len;i++) { if(ages[i]<=99&&ages[i]>=0) timesOfAge[ages[i]]++; } //对ages进行排序 int index=0; for(i=0;i<100;i++) { int j=0; while(j<timesOfAge[i]) { ages[index++]=i; j++; } } } int main() { int ages[] = {33,34,45,24,36,23,21,22,19,26,45,34,21,34,34,33,52,22,32,25,27,43,22,21,20,33,26,27,15,29}; int len=30; SortAge(ages,len); int i; for(i=0;i<len;i++) printf("%d ",ages[i]); printf("\n"); return 0; }

 

年龄排序(计数排序)

标签:

原文地址:http://www.cnblogs.com/lxl57610/p/5885640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!