概述
#include "sort_.h"
void print_array(int *arr, int n)
// 打印数组
{
if(n==0){
printf("ERROR: Array length is ZEROn");
return;
}
printf("%d", arr[0]);
for (int i=1; i<n; i++) {
printf(" %d", arr[i]);
}
printf("n");
}
void sort_array(int *arr, int n)
// 函数参数:乱序整数数组 数组长度
// 要求输出:调用print_array(int *arr, int n)输出:
// 每一行一个元素及其个数(升序),如 1 1
// 以及最终的升序序列
{
int max = *max_element(arr,arr+n);
int min = *min_element(arr,arr+n);
int arrLen = max-min+1;
int *jishu = new int[arrLen];
fill(jishu,jishu+arrLen,0);
for(int i=0;i<n;i++){
jishu[arr[i]-min] += 1;
}
int index = 0;
for(int i=0;i<arrLen;i++){
if(jishu[i]!= 0){
printf("%d %dn", i+min,jishu[i]);
}
}
for(int i=0;i<arrLen;i++){
while(jishu[i] != 0){
arr[index] = i+min;
jishu[i]--;
index++;
}
}
print_array(arr, n);
}
最后
以上就是平淡牛排为你收集整理的C语言实现计数排序的全部内容,希望文章能够帮你解决C语言实现计数排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复