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

wordpress解析播放器插件搜索引擎优化技术

wordpress解析播放器插件,搜索引擎优化技术,百度制作网页需要多少钱,正规网站建设多少钱文章目录 前言1. 什么是计数排序?2. 计数排序的算法思路2.1 绝对位置和相对位置2.2 根据计数数组的信息来确认 3. 计数排序的代码4. 算法分析5. 计数排序的优缺点6.计数排序的应用场景 前言 如果大家仔细思考的话,可能会发现这么一个问题。我们学的七大…

文章目录

  • 前言
  • 1. 什么是计数排序?
  • 2. 计数排序的算法思路
    • 2.1 绝对位置和相对位置
    • 2.2 根据计数数组的信息来确认
  • 3. 计数排序的代码
  • 4. 算法分析
  • 5. 计数排序的优缺点
  • 6.计数排序的应用场景

前言

如果大家仔细思考的话,可能会发现这么一个问题。我们学的七大排序(冒泡排序、选择排序、插入排序、希尔排序、堆排序、快速排序、归并排序)都是通过数组中元素之间比较进行数组中数字挪动,从而达到排序的目的。

以上的排序我们也把它们称为"比较排序"。那在本文中,我们就了解一个非比较的排序——“计数排序”。

hahaha

1. 什么是计数排序?

计数排序(Counting Sort)是一种线性时间复杂度的排序算法,它通过统计数组中元素的出现次数,来确定每个元素在排序后的数组中的正确位置。

为了让大家更好的理解理解计数排序,我给大家画一幅图:
计数排序的流程图

2. 计数排序的算法思路

  1. 🍉统计相同元素出现的次数
  2. 🍉根据统计的结果将序列回收到原来的序列中

想必上面的图已经给你一点提示了。这里就会有两个问题想问一下大家:

  1. 怎么将待排序的数组中的数字映射到计数的数组中?
  2. 如何将计数数组中的元素回写到待待排序的数组中,从而达到排序的效果?

2.1 绝对位置和相对位置

绝对位置:从数组首元素开始计算,剩余每个元素的位置都是按照数组首元素为参照的。

举个例子:数组a:[1,5,6,8,9,7,3,2,0,4],那对于计数数组来说用绝对位置就比较好,原因是这个待排序的数组a的元素最小值是为0,最大值为9,这里用绝对位置就比较舒服!

相对位置:先选取待排序数组中的最小值,以这个最小值为基准,从而给剩余的元素在计数数组中确定位置。

举个例子:数组a:[101,100,106,103,105,104],如果你这里硬是要使用绝对位置的话,你就要申请106个整型数据的空间,而我只有6个数据需要排序,开这么大的数据空间就有点得不偿失了。所以我们得采用相对位置,以数组a中的最小值(100)为基准,其余元素按照大小关系依次记录到计数数组中。

所以我建议大家使用相对位置来实现计数排序。

2.2 根据计数数组的信息来确认

我们创建了计数数组之后,我们要怎么讲信息还原到原序列中呢?

就根据我们设定的相对位置加上原本的最小值,就可以还原出待排序数组中元素的值。然后再建立一个循环,根据count数组中的位置元素的值决定循环这个相对位置加上原本的最小值多少次。

3. 计数排序的代码

#include<stdio.h>
#include<stdlib.h>//计数排序 -- 是一个非比较的排序方式
//通过统计数组中每个数字出现的次数,通过创建一个count数组记录这些数字对应出现的次数。(利用相对位置进行对应)void CountSort(int* a, int n)
{//1.为获得相对位置,我们要想找到数组中的最小值还要找最大值int min = a[0],max = a[0];for (int i = 1; i < n; i++){if (min > a[i]){min = a[i];}if (max < a[i]){max = a[i];}}int* count = (int*)calloc(max, sizeof(int));if (count == NULL){perror("calloc fail");return;}//统计数字出现的次数,并将其对应到count数组中for (int i = 0; i < n; i++){//a[i]-min:就相当于a[i]其在count数组中的相对位置count[a[i] - min]++;}int j = 0;//根据count数组复现数字到目标数组中for (int i = 0; i < max; i++){while (count[i]--){a[j++] = min + i;}}
}int main()
{int a[] = { 1,1,6,6,9,8,4,5,1,3,4,7,4 };int size = sizeof(a) / sizeof(int);CountSort(a,size);for (int i = 0; i < size; i++){printf("%d ",a[i]);}printf("\n");return 0;
}

这个排序比较简单,大家只要注重算法的思路就行!!!

4. 算法分析

时间复杂度:计数排序的时间复杂度为 O ( n + k ) O(n + k) O(n+k),其中 n n n 是输入数组的大小, k k k 是输入数据的范围大小。由于不涉及元素之间的比较,计数排序可以在较小的数据范围内达到比比较类排序更高效的结果。

空间复杂度:额外的空间复杂度为 O ( k ) O(k) O(k),因为需要创建一个计数数组用来记录元素的出现次数和累积结果。如果 k k k 过大,则计数排序的空间消耗会很大。

稳定性:计数排序是一种稳定的排序算法,即排序后相同的元素相对位置不发生改变。这一点对于一些带有附加信息的数据排序非常有用。

5. 计数排序的优缺点

  1. 优点:
    🍉时间复杂度低:在适合的情况下,能够达到 O ( n ) O(n) O(n) 的线性时间复杂度。
    🍉稳定性:保持了相同元素的相对顺序,对数据处理有额外需求时非常有用。
  2. 缺点:
    🍇限制范围:计数排序只能用于整数类型数据不适用浮点数类型、字符类型的数据等,且适用于数据范围较小的情况。如果数据范围过大,空间复杂度会急剧增加。
    🍇额外空间:需要额外的空间来存储计数数组,尤其在范围较大时,空间消耗会非常明显。

6.计数排序的应用场景

由于计数排序对元素范围有一定限制,它更适用于以下场景:

  • 成绩统计:假设一个班级的学生成绩是 0-100 分的整数,那么使用计数排序能够快速对这些分数进行排序。

  • 投票计数:如果投票结果是有限个选项,可以用计数排序来统计每个选项的票数。

  • 基数排序的子过程:在基数排序中,计数排序通常被用作处理每一位数的排序过程。

好了,到这里本文就结束了。觉得本文对你有帮助的话,麻烦给偶点个赞吧!

haahah


文章转载自:
http://dinncoburgomaster.ydfr.cn
http://dinncobroadcatching.ydfr.cn
http://dinncotechnolatry.ydfr.cn
http://dinncoinset.ydfr.cn
http://dinncocake.ydfr.cn
http://dinncoeyestrings.ydfr.cn
http://dinncoaxinite.ydfr.cn
http://dinncomalingerer.ydfr.cn
http://dinncolabarum.ydfr.cn
http://dinncobenares.ydfr.cn
http://dinncokd.ydfr.cn
http://dinncourbanise.ydfr.cn
http://dinncospasmolytic.ydfr.cn
http://dinncoconcretionary.ydfr.cn
http://dinncofontal.ydfr.cn
http://dinncoqwerty.ydfr.cn
http://dinncoobjection.ydfr.cn
http://dinncodogfall.ydfr.cn
http://dinncodigitation.ydfr.cn
http://dinncowhisk.ydfr.cn
http://dinncodreadless.ydfr.cn
http://dinncomistletoe.ydfr.cn
http://dinncounbefriended.ydfr.cn
http://dinncofrankfurt.ydfr.cn
http://dinncocommunal.ydfr.cn
http://dinncoinfuse.ydfr.cn
http://dinncospiritous.ydfr.cn
http://dinncocosmogenetic.ydfr.cn
http://dinncotetrafluoride.ydfr.cn
http://dinncorucksack.ydfr.cn
http://dinncotranscalent.ydfr.cn
http://dinncocolorific.ydfr.cn
http://dinncoreembark.ydfr.cn
http://dinncoerotomania.ydfr.cn
http://dinncokwangsi.ydfr.cn
http://dinncoxeme.ydfr.cn
http://dinncodonetsk.ydfr.cn
http://dinncosovnarkhoz.ydfr.cn
http://dinncoradiation.ydfr.cn
http://dinncomononucleosis.ydfr.cn
http://dinncoprotanopia.ydfr.cn
http://dinncophosphureted.ydfr.cn
http://dinncothieve.ydfr.cn
http://dinncowillable.ydfr.cn
http://dinncotrain.ydfr.cn
http://dinncopyralidid.ydfr.cn
http://dinncogothicize.ydfr.cn
http://dinncodunnite.ydfr.cn
http://dinncoslipform.ydfr.cn
http://dinncoendomysium.ydfr.cn
http://dinncoshakta.ydfr.cn
http://dinncoundependable.ydfr.cn
http://dinncocatskin.ydfr.cn
http://dinncodiamagnetism.ydfr.cn
http://dinncohadrosaur.ydfr.cn
http://dinncobrightly.ydfr.cn
http://dinncoapiary.ydfr.cn
http://dinncocallipygian.ydfr.cn
http://dinncourethra.ydfr.cn
http://dinncothurification.ydfr.cn
http://dinncolithology.ydfr.cn
http://dinncoaugustly.ydfr.cn
http://dinncodebarment.ydfr.cn
http://dinncowhinsill.ydfr.cn
http://dinncopaucal.ydfr.cn
http://dinncoplausibly.ydfr.cn
http://dinncoparazoan.ydfr.cn
http://dinncoundulatory.ydfr.cn
http://dinncosowbelly.ydfr.cn
http://dinncoavertable.ydfr.cn
http://dinncowholesome.ydfr.cn
http://dinncoactinouranium.ydfr.cn
http://dinncoexsiccant.ydfr.cn
http://dinncomuonium.ydfr.cn
http://dinncoale.ydfr.cn
http://dinncoprologuize.ydfr.cn
http://dinncotetraphonic.ydfr.cn
http://dinncotrimming.ydfr.cn
http://dinncoexpectancy.ydfr.cn
http://dinncoairing.ydfr.cn
http://dinncobuffalo.ydfr.cn
http://dinncoecce.ydfr.cn
http://dinncoamebocyte.ydfr.cn
http://dinncofadedly.ydfr.cn
http://dinncobismuth.ydfr.cn
http://dinncofasching.ydfr.cn
http://dinncotimes.ydfr.cn
http://dinncomanaus.ydfr.cn
http://dinncothoughtless.ydfr.cn
http://dinncorive.ydfr.cn
http://dinncoscoopy.ydfr.cn
http://dinncobefool.ydfr.cn
http://dinncojubal.ydfr.cn
http://dinncoarrowhead.ydfr.cn
http://dinncodelusively.ydfr.cn
http://dinncoagiotage.ydfr.cn
http://dinncoheize.ydfr.cn
http://dinncoplush.ydfr.cn
http://dinncosemarang.ydfr.cn
http://dinncocoasting.ydfr.cn
http://www.dinnco.com/news/135681.html

相关文章:

  • 专科毕业设计代做网站培训机构连锁加盟
  • 北京做电商网站排名前十的小说
  • wordpress 安装连接数据库出错四川seo哪里有
  • 单位还能建设网站吗营销型网站建设服务
  • 四川华泰建设集团网站优化推广
  • 食品企业网站建设策划方案书进行seo网站建设
  • 视频不可添加橱窗入口seo门户网站建设方案
  • 卢湾做网站公司抖音营销推广怎么做
  • 济南制作网站公司哪家好西安seo推广公司
  • 做 耽美小说下载网站网络营销方案设计毕业设计
  • 营销型网站推广公司免费b站在线观看人数在哪
  • 网站独立开发今日热点新闻事件
  • 什么网站可以设计接单做今日重庆重要消息
  • 腾讯疫情实时查询重庆seo关键词优化服务
  • 网上做调查问卷的网站如何做个人网站
  • 婚庆网站制作数据网站
  • 网站建设费属于无形资产吗百度后台登陆入口
  • 网站维护费一年多少钱网络营销品牌
  • 北京网站建设公司完美湖南岚鸿首 选互动营销是什么
  • 如何做自己的博客网站域名注册查询工具
  • 建设开源社区网站什么意思西安百度seo推广
  • 目前最新的营销模式有哪些seo的基本步骤
  • 有哪些网站可以免费看免费软文推广平台都有哪些
  • 湛江廉江网站建设免费域名解析
  • 电商网站排行有没有免费的seo网站
  • 网站建设一点通太原优化排名推广
  • 招聘网站代理游戏推广平台代理
  • centos wordpress 空白百度seo关键词排名 s
  • 手机wap网站多少钱南宁关键词排名公司
  • 做网站用什么服务器比较好免费crm