当前位置: 首页 > news >正文

苏州 网站建设 app谷歌搜索引擎网页版入口

苏州 网站建设 app,谷歌搜索引擎网页版入口,重复建设政务网站,成都双流兴城建设投资有限公司网站目录 计数排序算法的思想 计数排序算法的实现 计数排序算法的思想 遍历数组,找出数组中的最大值 max 和 最小值 min 最大值 max 减去最小值 min 再加 1 得出数组元素的范围 range 利用 range 的大小 malloc 一个 count 数组用来计数 再对 count 数组进行初始化…

目录

计数排序算法的思想

计数排序算法的实现


计数排序算法的思想

遍历数组,找出数组中的最大值 max 和 最小值 min

最大值 max 减去最小值 min 再加 1 得出数组元素的范围 range

利用 range 的大小 malloc 一个 count 数组用来计数

再对 count 数组进行初始化,全初始化为 0

在计数时要把原数组的每个元素各自减去最小值 min,这样做才能和 count 数组的下标一一对应,只要有相同的元素,就在对应的位置自增 1 ,而且以上的做法称之为相对映射

如果原数组的元素是多少就直接映射到 count 数组的对应位置的话,这样的映射叫做绝对映射,但是这样的映射可能会导致 count 数组多开很多不必要的空间,会造成空间浪费

当 count 数组计数完成后,再对 count 数组进行遍历,遍历 count 数组上的每个元素的个数,只要是非 0 的个数,那么就在原数组上面覆盖,注意,覆盖是需要先加 min

最后走完 count 数组时,原数组也就完成了排序


计数排序算法的实现

代码演示:

void CountSort(int* a, int size)
{/*找到数组中的最小值和最大值*/int min = a[0];int max = a[0];for (int i = 0; i < size; i++){if (a[i] < min){min = a[i];}if (a[i] > max){max = a[i];}}// 得出元素范围int range = max - min + 1;// 开辟 range 个空间用来计数int* countArr = (int*)malloc(sizeof(int) * range);// 判断是否开辟成功if (countArr == NULL){perror("malloc fail");return;}// 初始化为 0memset(countArr, 0, sizeof(int) * range);// 计数for (int i = 0; i < size; i++){countArr[a[i] - min]++;}// 排序int  k = 0;for (int i = 0; i < range; i++){while (countArr[i]--){a[k++] = i + min;}}
}

代码解析:

解析:countArr[a[i] - min]++

用 i 遍历原数组 a 中的每个值,再减去最小值 min ,得到的就是 [0,range] 区间的值

那么 [0,range] 区间也就是 countArr 数组下标对应的值,因为初始是 0 ,所以通过 countArr[a[i] - min] 找到后直接++即可

最后再排序,排 countArr 数组中非 0 元素的值,再一一覆盖到 a 数组,注意覆盖时要加上最小值 min,才是原数组中的值

代码验证:

http://www.jinmujx.cn/news/115849.html

相关文章:

  • 网站建设类的计入什么科目怎么制作网站详细流程
  • 广西两学一做网站百度推广上班怎么样
  • 企业自助建站模板找代写文章写手
  • WordPress 主题选项框架优化营商环境心得体会2023
  • 怎么寻找做有意做网站的客户整站优化报价
  • 晚上必看的正能量网站网络优化工程师前景
  • 做虚拟主机网站沈阳seo推广
  • 创卫网站 建设 方案安徽网络关键词优化
  • 重庆市卫生厅网站 查询前置审批关键词怎么找出来
  • 网站怎么申请微信支付最简短的培训心得
  • 网站开发的流程商丘网站推广公司
  • 企业营销网站建设规划网络营销工具体系
  • 门户类网站注重什么任何东西都能搜出来的软件
  • 风水公司网站建设刚刚传来最新消息
  • 做网站的大小保健品的营销及推广方案
  • 功能型网站公司网络推广的作用
  • wordpress升级4.1seo排名优化怎么样
  • 网站建设石家庄快优网络营销中的seo是指
  • 做哪种类型的网站赚钱呢软文代写文案
  • 建设培训网站360推广官网
  • 设计师浏览网站新闻发布
  • 嘉盛集团官方网站免费网站排名优化在线
  • 河南官网网站建设怎么在百度发布自己的文章
  • 保定seo全网营销网站优化推广费用
  • phpwind做的网站优化设计单元测试卷答案
  • 怎么做联盟网站网上推广企业
  • wordpress适合做什么安卓优化大师app
  • 做微商怎样加入网站卖东西赚钱泉州百度开户
  • 自己做网站怎么做的网络营销推广合作
  • 网站开发与硬件合同公司网站