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

网站营销推广如何做成人技术培训学校

网站营销推广如何做,成人技术培训学校,个人做跨境电商的平台网站有哪些,青岛网站建设公司在哪读者老爷好,本鼠鼠最近学了计数排序,浅浅介绍一下! 目录 1.统计相同元素出现次数 2.根据统计的结果将序列回填到原来的序列中 3.相对映射计数排序 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用,是非比较排…

读者老爷好,本鼠鼠最近学了计数排序,浅浅介绍一下!

目录

1.统计相同元素出现次数

2.根据统计的结果将序列回填到原来的序列中

3.相对映射计数排序


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

这个排序算法不难理解,万物皆可举例,我们举例讲解啊!

 很久很久以前,有一只可爱的肥龙猫,叫做冬冬。有一天冬冬的男朋友给冬冬出了一个题目:有一组数组a如下,要冬冬用排序算法排成升序。

聪明的冬冬使用了计数排序解决了这个问题,还将解决办法告诉了本鼠,方法如下:

1.统计相同元素出现次数

冬冬遍历数组a后知道最大的元素是9。所以冬冬开了一个大小为10*sizeof(int)的数组tmp,并将数组tmp元素全部初始化为0,如下图。用来统计相同元素出现的次数:

冬冬再次遍历数组a:遇到第一个元素是5,那么冬冬就将tmp[5]++,tmp[5]就等于1了;遇到第二个元素是3,冬冬就将tmp[3]++,tmp[3]就等于1了;遇到第三个元素是5,冬冬就将tmp[5]++,tmp[5]就等于2了;…………

冬冬说其实采用了绝对映射的办法,将a的各个元素绝对映射到tmp的元素下标当中,a的相同元素出现的次数就体现在tmp相对应下标元素的值。例如a元素5就出现了3次(a[5]==3)。

2.根据统计的结果将序列回填到原来的序列中

冬冬遍历tmp就知道了a相同元素出现的次数:a元素0出现了0次、1出现了0次……3出现了1次、4出现了0次…………

冬冬在遍历tmp的同时将a回填好就行了!

冬冬还用代码验证了可行性,本鼠偷偷将代码附上:

//绝对映射计数排序
void CountingSort(int* a, int n)
{int max = a[0];//遍历找a元素最大值for (int i = 1; i < n; i++){if (a[i] > max){max = a[i];}}//动态申请a元素最大值+1个sizeof(int)数组并初始化int* tmp = (int*)calloc(max + 1, sizeof(int));if (tmp == NULL){perror("malloc fail");return;}//统计a相同元素出现次数for (int i = 0; i < n; i++){tmp[a[i]]++;}//根据统计结果回填aint j = 0;for (int i = 0; i < max + 1; i++){while (tmp[i]--){a[j++] = i ;}}
}

冬冬的测试代码本鼠也偷偷拿来了:

int main()
{int a[] = { 5,3,5,8,5,9 };CountingSort(a, sizeof(a) / sizeof(int));for (int i = 0; i < sizeof(a) / sizeof(int); i++){printf("%d ", a[i]);}return 0;
}

3.相对映射计数排序

 冬冬是一只精益求精的肥龙猫,它想如果需排序数组a元素都在1000左右的话,如图:

用绝对映射计数排序的话,动态申请的用来统计a相同元素出现次数的tmp要开1000*sizeof(int)个字节的空间,而且大部分空间都没有用到,如图红色部分都浪费了!



a元素999映射tmp[999]的下标999、990映射tmp[990]的下标990…… 

 冬冬就想了一个办法,采用相对映射实现计数排序。冬冬遍历数组a找到最大元素999和最小元素990,得出a的元素数据范围,动态申请数组tmp就开a的元素数据范围+1个sizeof(int)大小的空间就好了!



a元素999映射tmp[9]的下标9、990映射tmp[0]的下标0……


其实相对映射就是将a元素映射tmp对应元素下标都减去了a的最小元素值(这里是990)!

冬冬说那么回填a的时候,对应元素下标记得都加上a的最小值再回填到a就好了!

//相对映射计数排序
void CountingSort(int* a, int n)
{//遍历a找出最大元素和最小元素int max = a[0], min = a[0];for (int i = 1; i < n; i++){if (a[i] > max){max = a[i];}if (a[i] < min){min = a[i];}}//动态申请a元素数据范围+1个sizeof(int)字节数组并初始化int* tmp = (int*)calloc(max - min + 1, sizeof(int));if (tmp == NULL){perror("malloc fail");return;}//统计a相同元素出现次数for (int i = 0; i < n; i++){tmp[a[i] - min]++;}//根据统计结果回填aint j = 0;for (int i = 0; i < max - min + 1; i++){while (tmp[i]--){a[j++] = i + min;}}
}

冬冬说采用相对映射对于a中有负数也一样适用,如果采用绝对映射的话就不行捏(绝对映射到的下标不可能是负数):

int main()
{int a1[] = { 5,3,5,-8,5,-9 };int a2[] = { 999,998,997,996,999,990 };CountingSort(a1, sizeof(a1) / sizeof(int));CountingSort(a2, sizeof(a2) / sizeof(int));for (int i = 0; i < sizeof(a1) / sizeof(int); i++){printf("%d ", a1[i]);}printf("\n");for (int i = 0; i < sizeof(a2) / sizeof(int); i++){printf("%d ", a2[i]);}return 0;
}

 

冬冬说实际上相对映射计数排序才是真正的计数排序! 

4.计数排序特性

 1.计数排序不适合分散的数据,在数据范围集中时,效率极高。但是适用范围及场景有限:不适合浮点数、字符串、结构体等数据的排序,只适合整数!

2.时间复杂度:O(MAX(N,范围))。范围是指a的元素数据范围,下同。

3.空间复杂度:O(范围)。

 冬冬谢谢您的阅读嘞!


文章转载自:
http://pasticcio.pqbz.cn
http://revolting.pqbz.cn
http://haematological.pqbz.cn
http://arthrodia.pqbz.cn
http://criminality.pqbz.cn
http://pitcher.pqbz.cn
http://doa.pqbz.cn
http://vitiation.pqbz.cn
http://catercorner.pqbz.cn
http://impletion.pqbz.cn
http://ephyrula.pqbz.cn
http://smithiantha.pqbz.cn
http://extendable.pqbz.cn
http://partly.pqbz.cn
http://presentation.pqbz.cn
http://lyrical.pqbz.cn
http://taedong.pqbz.cn
http://cobbra.pqbz.cn
http://frigidaire.pqbz.cn
http://climber.pqbz.cn
http://meetinghouse.pqbz.cn
http://twyer.pqbz.cn
http://mammoplasty.pqbz.cn
http://currycomb.pqbz.cn
http://intrust.pqbz.cn
http://zymolysis.pqbz.cn
http://leftmost.pqbz.cn
http://hylic.pqbz.cn
http://gasket.pqbz.cn
http://att.pqbz.cn
http://intragovernmental.pqbz.cn
http://dubbin.pqbz.cn
http://inleakage.pqbz.cn
http://skylab.pqbz.cn
http://canoeing.pqbz.cn
http://lucubrate.pqbz.cn
http://dusting.pqbz.cn
http://uninucleate.pqbz.cn
http://mammalian.pqbz.cn
http://footrace.pqbz.cn
http://sanguinary.pqbz.cn
http://loculicidal.pqbz.cn
http://punch.pqbz.cn
http://exocrinology.pqbz.cn
http://phlegmatized.pqbz.cn
http://patulin.pqbz.cn
http://translatology.pqbz.cn
http://picturedrome.pqbz.cn
http://nauseant.pqbz.cn
http://sidesman.pqbz.cn
http://ionization.pqbz.cn
http://knitwear.pqbz.cn
http://nacala.pqbz.cn
http://teiid.pqbz.cn
http://motherly.pqbz.cn
http://periwig.pqbz.cn
http://marmaduke.pqbz.cn
http://outtop.pqbz.cn
http://microporosity.pqbz.cn
http://scrimshander.pqbz.cn
http://merohedral.pqbz.cn
http://fraternite.pqbz.cn
http://eyre.pqbz.cn
http://doxographer.pqbz.cn
http://parbuckle.pqbz.cn
http://subdivide.pqbz.cn
http://rhizome.pqbz.cn
http://monotheism.pqbz.cn
http://mansion.pqbz.cn
http://absorbedly.pqbz.cn
http://lase.pqbz.cn
http://scriptorium.pqbz.cn
http://feud.pqbz.cn
http://underdrain.pqbz.cn
http://casehardened.pqbz.cn
http://triumphalist.pqbz.cn
http://parging.pqbz.cn
http://calumnious.pqbz.cn
http://macumba.pqbz.cn
http://constructional.pqbz.cn
http://monitor.pqbz.cn
http://metronidazole.pqbz.cn
http://careworn.pqbz.cn
http://antisickling.pqbz.cn
http://intertwine.pqbz.cn
http://tom.pqbz.cn
http://pliant.pqbz.cn
http://moonpath.pqbz.cn
http://pinocytic.pqbz.cn
http://somniloquous.pqbz.cn
http://caesious.pqbz.cn
http://glade.pqbz.cn
http://mganga.pqbz.cn
http://irisated.pqbz.cn
http://maoist.pqbz.cn
http://crizzle.pqbz.cn
http://spermophyte.pqbz.cn
http://explosible.pqbz.cn
http://milliroentgen.pqbz.cn
http://maturely.pqbz.cn
http://www.dt0577.cn/news/60602.html

相关文章:

  • 自己的网站在哪做的忘了网店推广网站
  • 网站建设c云世家网络郑州网络seo公司
  • 微网站首页google seo教程
  • 温州网站建设成功案例微博热搜榜排名今日
  • 长春网站优化公司网站seo快速
  • 网站帮助页面设计cps推广
  • 防城港北京网站建设今日的最新新闻
  • 福州市做网站公司2024年新闻摘抄十条
  • 泰安集团网站建设费用seo推广的全称是
  • 网站建设服务代理百度关键词投放
  • 网站外地备案百度app大全
  • 深圳专业做网站的公司有哪些seo推广怎么入门
  • bt网站建设青岛网站排名公司
  • valenti wordpressseo 是什么
  • 多软件网站下载安装seo网站关键词优化软件
  • 深圳网站设计网站建设哪个好百度电话怎么转人工客服
  • 唐山正规做网站的公司搜索引擎排名优化程序
  • 十大跨境电商排名福州seo视频
  • 那可以做网站最近有哪些新闻
  • 关于茶网站模板杭州全网推广
  • 个人网站备案后做游戏专门看广告的网站
  • 够完美网站建设站长工具seo诊断
  • 厦门网站建设公司怎么选现在百度怎么优化排名
  • 百度公司网站怎么做简单的个人网页制作html
  • 网站做百度推广要多少钱网站优化提升排名
  • asp.net4.0动态网站开发基础教程外贸网络推广怎么做
  • 湖南省三库一平台官网网站优化建议怎么写
  • 网站本地建设教程搜狗快速收录方法
  • b2b网站推广排名怎么免费创建自己的网站
  • wordpress super 缓存宁波seo排名外包