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

单县网站定制长沙好的seo外包公司

单县网站定制,长沙好的seo外包公司,网站及推广,做网站用软件目录 CountSort计数排序 整体思想 图解分析 代码实现 时间复杂度&优缺分析 CountSort计数排序 计数排序是一种非比较排序,不需要像前面的排序一样去比较。 计数排序的特性总结: 1. 计数排序在数据范围集中时,效率很高,但…

目录

CountSort计数排序

整体思想

图解分析

代码实现

时间复杂度&优缺分析


CountSort计数排序

计数排序是一种非比较排序,不需要像前面的排序一样去比较。

计数排序的特性总结:
1. 计数排序在数据范围集中时,效率很高,但是适用范围及场景有限。
2. 时间复杂度:O(MAX(N,范围))
3. 空间复杂度:O(范围)

4. 稳定性:稳定 

整体思想

  • 思想:计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。
  • 1. 统计相同元素出现次数
  • 2. 根据统计的结果将序列回收到原来的序列中 

Count数组

  • Count数组中的元素需要全部初始化为0(calloc就可以满足这个要求)
  • Count元素是 计算a数组元素个数出现的次数
  • Count数组的下标是a数组元素的范围
  • 绝对隐射:范围0~max(a中最大的元素)
  • 相对隐射:范围0~max-min <<<<<<<<< min~max
  • range = max-min+1(映射0~max-min,个数max-min+1)

整个流程

  • 遍历一遍:找到最大值 / 最小值
  • 计算出Count数组下标范围并且开辟动态空间
  • rangge=max-min+1
  • 计数Count[a[i]-min]++ (i++)
  • 相对隐射回去

注意tips

  • i和j能不能公用❓
  • a数组的元素可以是负数吗?
  • 除了整型其他类型可以吗?
  • 后置--&前置--

  • calloc>>>>>>calloc - C++ Reference (cplusplus.com)
  • Count的下标表示a的元素的范围
  • Count的元素表示a的元素出现的个数(计数)

图解分析

代码实现

void CountSort(int* a, int n)
{//找最大值/最小值/创建的tmp的范围在这个之间int max = a[0];int min = a[0];for (int i = 0; i < n; i++){if (a[i] > max){max = a[i];}if (a[i] < min){min = a[i];}}int range = max - min + 1;//注意int* count = (int*)calloc(range, sizeof(int));//计数for (int j = 0; j < n; j++){count[a[j]-min]++;}//相对隐射回去int i = 0;for (int k = 0; k < range; k++){while (count[k]--){a[i++] = k + min;}}
}

时间复杂度&优缺分析

时间复杂度:O(N)

  • 时间复杂度:O(a(N)+coun(N))(count的N是a的数据范围)
  • 计数排序不需要比较元素大小
  • 优势:效率极高
  • 局限性:不适合范围很大,计数排序只适用于整型,不同数据类型的,实践意义不高。(现实实践,更多的是结构体排序,不能适用计数排序)

🙂感谢大家的阅读,若有错误和不足,欢迎指正。下篇总结各个排序。

http://www.sczhlp.com/news/93798/

相关文章:

  • 有域名有服务器怎么建站临颍网站建设
  • 网站开发专业就业前景php mysql网站开发全程实例
  • 住房建设厅网站做打折网站如何
  • 网站开发企业标准中国海洋大学做英语作业的网站
  • 如何给网站做404页面如何在图片上做网站水印图
  • 企业网站源码哪个好新农村建设官方网站
  • 公司网站外包建设没有源代码服务器调用wordpress
  • 大连做公司网站wordpress标签美化
  • Task2:利用 Basnet 将Task1中的所有图片转化为显著性图片
  • 做汽车配件外贸用什么网站手机网页制作尺寸
  • 做网站需知怎么做网站推广的论文
  • 社交投票论坛网站开发创建网站数据库
  • 轻淘客网站建设实训报告网站开发
  • 搭建网站服务器多少钱全球购物网站大全
  • 代码随想录算法训练营第一天| 704.二分查找、27.移除元素、977.有序数组的平方
  • 廊坊购物网站开发设计定制科技软件
  • 网站开发工程师大学好的网站建设启示
  • 制作网站的花多少钱网站相似度检测 站长
  • 外贸俄罗斯俄语网站开发做性视频网站有哪些
  • 如何做超市的网站网络推广服务协议
  • 淄博网站制作定制推广六安服装网站建设地址
  • 零购物网站怎么建设网页动态效果
  • 网站开发方向行业现状python怎么读
  • 郑州建站公司网站wordpress文档模板
  • 网站项目报价方案怎样用别人的网站做修改
  • kuka机器人程序备份
  • AI 测试工具20款
  • 做新闻封面的网站网站制作用的软件有哪些
  • 广东建的电商网站叫啥电子商务网站建设重点难点
  • 网站基本模块花店网页设计代码