计数排序

news/发布时间2024/5/20 17:32:16
/********************************************************************************************************
*
*	file name:	Zqh_计数排序.c
* 	author	 :	keyword2024@163.com
* 	date	 :	2024/05/05
* 	function   :    计数排序.改
*	note	:    算法
*	
*  Copyright (c)  2023-2024   keyword2024@163.com    All right Reserved
* ******************************************************************************************************/#include<stdio.h>
/*
第一种形式实现计数排序
计数排序后的顺序为从小到大
arr[0...len-1]为待排数组,每个元素均是0-k中的一个值
brr[0...len-1]为排序后的输出数组
crr[0...k]保存0...k中每个值在数组arr中出现的次数
*/
void Count_Sort(int *arr,int *brr,int *crr,int len,int k)
{int i,j=0;//数组crr各元素置0for(i=0;i<=k;i++)crr[i] = 0;//统计数组arr中每个元素重复出现的个数for(i=0;i<len;i++)crr[arr[i]]++;//求数组arr中小于等于i的元素个数for(i=1;i<=k;i++)crr[i] += crr[i-1];//把arr中的元素放在brr中对应的位置上for(i=len-1;i>=0;i--){brr[crr[arr[i]]-1] = arr[i];//如果有相同的元素,则放在下一个位置上crr[arr[i]]--;}
}/*
第二种形式实现计数排序
计数排序后的顺序为从小到大
arr[0...len-1]为待排数组,每个元素均是0-k中的一个值
crr[0...k]保存0...k中每个值在数组arr中出现的次数
*/
void Count_Sort(int *arr,int *crr,int len,int k)
{int i,j=0;//数组crr各元素置0for(i=0;i<=k;i++)crr[i] = 0;//统计数组arr中每个元素重复出现的个数for(i=0;i<len;i++)crr[arr[i]]++;//根据crr[i]的大小,将元素i放入arr适当的位置for(i=0;i<=k;i++)while((crr[i]--)>0){arr[j++] = i;}
}int main()
{int i; //待排序数组,每个元素均在0-8之间int arr[] = {2,1,3,8,6,0};int brr[6];int crr[9];Count_Sort(arr,brr,crr,6,8);printf("计数排序后的结果为:");for(i=0;i<6;i++)printf("%d ",brr[i]);printf("\n");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.diaolansx.cn/news/56334136.html

如若内容造成侵权/违法违规/事实不符,请联系吊兰实现网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

constexpr和常量表达式

1、常量表达式是什么 在编译时就能确定其值的表达式。换句话说,常量表达式的值在编译过程中就已经是已知且不会改变的。常量表达式是由 数据类型 和 初始值 共同决定的。(注意区分const 和 常量表达式) 常量表达式的特点:值在编译时已知:常量表达式的值在编译阶段就能确定…

沟通技巧

第一步:搞定情绪 充分表达尊重,(不吝赞美,如何夸奖别人?从细节和对比可以发现) 夸人的时候不要太笼统,如:你穿的真好看和今天 上衣显的你很白,太美了。。 显然后面这一句显得更加的真诚 找不到细节就用对比,你穿的真好看,比一般人有气质多了。 对比找不到,就直接夸…

andriod sdk 安装

1、下载andriod sdk tools https://www.androiddevtools.cn/ 2、解压zip包 dos窗口进入 解压路劲 执行 tools\android.bat update sdk --no-ui(解压目录中SDK Readme.txt)

大模型高效微调详解-从Adpter、PrefixTuning到LoRA

一、背景 目前NLP主流范式是在大量通用数据上进行预训练语言模型训练,然后再针对特定下游任务进行微调,达到领域适应(迁移学习)的目的。指令微调是预训练语言模型微调的主流范式其目的是尽量让下游任务的形式尽量接近预训练任务,从而减少下游任务和预训练任务之间的Gap, 实…

《自动机理论、语言和计算导论》阅读笔记:p428-p525

《自动机理论、语言和计算导论》学习第 14 天,p428-p525总结,总计 98 页。 一、技术总结 1.Kruskals algorithm(克鲁斯克尔算法) 2.NP-Complete Problems p434, We say L is NP-complete if the following statements are true about L: (1)L is in NP。 (2)For every langu…

https加密机制

参考: https://www.cnblogs.com/sxiszero/p/11133747.html https://www.cnblogs.com/technology178/p/14094375.html 对称加密:只用一个秘钥的加解密,如果秘钥进行了泄漏,导致数据不安全 非对称加密:非对称加密算法需要一组密钥对,分别是公钥和私钥,这两个密钥是成对出现…