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

做网站怎么插音乐石家庄手机端seo

做网站怎么插音乐,石家庄手机端seo,长沙九度网络科技,企业网络营销企业网站建设章节习题计数排序 前言一、计数排序算法核心思路映射 概念补充绝对映射相对映射 二、计数排序算法核心实现步骤三、码源详解四、效率分析(1)时间复杂度 — O(Max(N,range))(2)空间…

计数排序

  • 前言
  • 一、计数排序算法核心思路
    • 映射 概念补充
    • 绝对映射
    • 相对映射
  • 二、计数排序算法核心实现步骤
  • 三、码源详解
  • 四、效率分析
    • (1)时间复杂度 — O(Max(N,range))
    • (2)空间复杂度 — O(range)



前言

计数排序是一种 非比较排序。计数排序又称为 鸽巢原理 ,是对哈希直接定址法的变形应用


一、计数排序算法核心思路

在这里插入图片描述


映射 概念补充

每个值跟其位置建立出一个关系

绝对映射

数值是几就映射出下标是几。如上图

若数组中数据的大小范围并不是乖乖的从0-1,那么这是再采用绝对映射,则会产生很大的空间浪费。
在这里插入图片描述
那么就有了相对映射的概念

相对映射

在这里插入图片描述
通过遍历原数组,找出min值,将 a[i] 的值 - min值 【即 a[ i ] - min 】就是对应 数组count[ ]的下标了,遍历到一个就令该下标( 对应a[i]的值 )下的 count [ ] 值++计数



二、计数排序算法核心实现步骤

  1. 遍历一遍数组 => 得出min和max值 => 确定数的范围

  2. 确定范围 => 确定需要开辟的数组的大小

  3. 开辟大小为range的空间count [ ] (避免了 绝对映射 那样的空间的浪费) 。用作统计 需排序的数组a[i] 中每个数据出现的次数
    【注意:要进行初始化!!否则待会遍历计数数组中,那些并没有统计到有这个数出现的次数的位置,将以该内存原来的值(随机数)进行填入】

  4. 遍历待排序的数组 => 统计数组中每个数据出现的次数 => 通过 a[i]-min 找到对应下标在 count 中的对应下标 => 对该下标的值对应++进行计数

  5. 遍历计数数组,根据统计到的每个数的次数count[i],就拷贝回去原数组count[i]次,i+min:对应回原数组中的值,while()循环覆盖原数组



三、码源详解

//计数排序——非比较排序
void CountSort(DataType* a,int n) {//遍历一遍数组 => 得出min和max值 => 确定数的范围int min = a[0]; int max = a[0];for (int i = 0; i < n; i++) {if (a[i] < min) {min = a[i];}if (max < a[i]) {max = a[i];}//确定范围 => 确定需要开辟的数组的大小int range = max - min + 1;    //[min,max]左闭右闭,所以+1//开辟大小为range的空间,避免了 绝对映射 那样的空间的浪费DataType* count = (DataType*)malloc(sizeof(DataType)*range);if (count == NULL) {perror("malloc fail");exit(-1);}//内存重置 将count数组中的值都初始化为0,重置数组大小为sizeof(DataType) * range//要进行初始化,否则待会遍历计数数组中,那些并没有统计到有这个数出现的次数的位置,将以该内存原来的值(随机数)进行填入memset(count, 0, sizeof(DataType) * range);//数组中的值//遍历数组 => 统计数组中各数据出现的次数 => 通过 a[i]-min 找到对应下标在 count 中的对应下标 => 对该下标的值对应++进行计数for (i = 0; i < n; i++) {count[a[i] - min]++;}//排序//遍历计数数组,根据统计到的每个数的次数count[i],就拷贝回去原数组count[i]次,覆盖原数组//遍历数组int j = 0;     //放外面,遍历a[] j记录的数值 不会别被清for (i = 0; i < range; i++) {while (count[i]--){             //count[i]=0的进不了循环a[j++] = i + min;             //i+min:对应回原数组中的值}}}
}


四、效率分析

总体特点:比较小众

  1. 适用于数据范围相对集中。
  2. 只适合整形
  3. 基数排序

(1)时间复杂度 — O(Max(N,range))

(2)空间复杂度 — O(range)

http://www.ableceo.cn/news/241.html

相关文章:

  • 页面素材seo关键词排名优化系统源码
  • hao123浏览器官方下载免费的关键词优化软件
  • 网站设计与编辑武汉百度推广外包
  • 榆林做网站多少钱深圳媒体网络推广有哪些
  • 平顶山做网站引擎搜索入口
  • linux 网站建设模板seo优化及推广如何运营
  • 网站备案需要的资料seo网站推广技术
  • 宣化网站建设南昌seo网站排名
  • 效果图制作属于什么经营范围seo整站排名
  • 网站二维码怎么做市场调研报告怎么做
  • 有没有做php项目实战的网站网址最全的浏览器
  • 富士康做电商网站企业管理培训课程网课免费
  • 济南抖音推广公司优化一下
  • 保定网站报价北京网络推广有哪些公司
  • 家里的电脑怎样做网站赚钱关键词的作用
  • 网站建设开发公司现在外贸推广做哪个平台
  • 徐州网站建设浙江seo关键词
  • asp做网站教程哈尔滨百度关键词优化
  • 西安 网站开发 招聘张家界seo
  • wordpress网站加载过慢免费seo网站自动推广
  • 免费做网站有哪些怎样在百度上建立网站
  • 微商怎么引流推广成都网站排名生客seo怎么样
  • 淘宝做的网站可靠吗seo搜索引擎优化是什么意思
  • 民治做网站多少钱投稿平台
  • 动漫网站建设总结小红书推广怎么收费
  • 怎么建立自己的网站免费百度小说搜索风云榜排名
  • wordpress插件分享显示班级优化大师怎么下载
  • 诸城做网站的公司微博营销软件
  • wordpress 图片压缩广州seo工程师
  • 甘肃企业网站建设以网红引流促业态提升