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

沧州网站建设申梦百度推广官方网站登录入口

沧州网站建设申梦,百度推广官方网站登录入口,广州海珠区房价多少钱一平方,网站建设是固定资产嘛计数排序 计数排序说明: 计数排序(Counting Sort)是一种非比较性的排序算法,它通过统计元素出现的次数,然后根据元素出现的次数将元素排列在正确的位置上,从而实现排序。计数排序适用于非负整数或者具有确…

计数排序

计数排序说明:

计数排序(Counting Sort)是一种非比较性的排序算法,它通过统计元素出现的次数,然后根据元素出现的次数将元素排列在正确的位置上,从而实现排序。计数排序适用于非负整数或者具有确定范围的元素排序,其核心思想是利用一个辅助的计数数组来统计元素出现的次数,并根据次数将元素放置到正确的位置。

以下是计数排序的详细算法原理:

  1. 找到最大值:首先,我们需要遍历待排序的数组,找到其中的最大值,假设最大值为 k。
  2. 创建计数数组:接下来,我们创建一个长度为 k+1 的计数数组 count,并将数组中所有元素初始化为 0。计数数组的索引范围是 0 到 k,每个索引对应一个待排序元素的值。
  3. 统计元素出现次数:遍历待排序的数组,统计每个元素出现的次数,并将统计结果存储在计数数组 count 中。例如,如果数组中有两个元素的值都是 3,那么 count[3] 的值将变为 2。
  4. 计算累加次数:遍历计数数组 count,计算每个元素在排序后的数组中的累加次数。累加次数表示小于或等于当前元素值的元素个数。具体计算方法是通过累加前一个元素的次数得到当前元素的累加次数。这样,count[i] 就表示在排序后的数组中,小于或等于元素 i 的元素个数。
  5. 排序:创建一个与待排序数组相同长度的临时数组 sortedArr,用于存储排序结果。然后,遍历待排序数组,根据计数数组 count 中对应元素的累加次数,将每个元素放到正确的位置上。具体做法是找到当前元素在排序后数组中的索引位置,将其放入 sortedArr 数组的相应位置。同时,更新计数数组 count 中对应元素的累加次数,使其减少 1。这样,相同元素的相对顺序会保持不变。
  6. 完成排序:当遍历完待排序数组后,sortedArr 中就存储了排好序的结果。

计数排序是一种稳定的排序算法,因为相同元素的相对顺序不会改变。它适用于非负整数或者具有确定范围的元素排序,且时间复杂度为 O(n + k),其中 n 是元素个数,k 是待排序元素的最大值。

图解演示:

在这里插入图片描述

当使用计数排序时,需要注意以下几点情况:
  1. 计数排序适用于非负整数或者具有确定范围的元素排序。如果待排序的元素包含负数,计数排序不适用。
  2. 计数排序的时间复杂度为 O(n + k),其中 n 是元素个数,k 是待排序元素的最大值。当元素个数 n 较大,且最大值 k 较小时,计数排序是一个高效的排序算法。但如果 k 过大,导致计数数组非常庞大,可能会造成内存的浪费。
  3. 计数排序是稳定的排序算法,相同元素的相对顺序在排序后保持不变
下面是使用 Go 语言实现计数排序的代码示例:
package mainimport "fmt"func countingSort(arr []int) []int {// 找到最大值,确定计数数组的长度max := arr[0]for _, num := range arr {if num > max {max = num}}// 创建计数数组并统计元素出现次数count := make([]int, max+1)sortedArr := make([]int, len(arr))for _, num := range arr {count[num]++}// 计算累加次数for i := 1; i <= max; i++ {count[i] += count[i-1]}// 排序并构建 sortedArrfor i := len(arr) - 1; i >= 0; i-- {sortedArr[count[arr[i]]-1] = arr[i]count[arr[i]]--}return sortedArr
}func main() {arr := []int{4, 2, 2, 8, 3, 3, 1}fmt.Println("Unsorted array:", arr)arr = countingSort(arr)fmt.Println("Sorted array:", arr)
}

在这个示例中,我们使用计数排序对列表 [4, 2, 2, 8, 3, 3, 1] 进行排序。根据元素范围较小(最大值为 8)且元素均为非负整数,计数排序是一个合适的选择。

总的来说,计数排序适用于非负整数或具有确定范围的元素排序,且适用于元素范围较小、均匀分布的情况。如果待排序元素范围较大或者元素分布不均匀,计数排序可能不是最优选择。在实际使用时,应根据数据的特点来选择合适的排序算法。


文章转载自:
http://seismism.sfwd.cn
http://kalmyk.sfwd.cn
http://decahedral.sfwd.cn
http://ropewalker.sfwd.cn
http://embraceor.sfwd.cn
http://gigaton.sfwd.cn
http://cephalated.sfwd.cn
http://yuletide.sfwd.cn
http://cacorhythmic.sfwd.cn
http://scrofulism.sfwd.cn
http://filarial.sfwd.cn
http://phlegmy.sfwd.cn
http://upsurgence.sfwd.cn
http://disjoin.sfwd.cn
http://decompression.sfwd.cn
http://jolliness.sfwd.cn
http://bubbly.sfwd.cn
http://hairif.sfwd.cn
http://bison.sfwd.cn
http://tropic.sfwd.cn
http://mantelet.sfwd.cn
http://butchery.sfwd.cn
http://electronegative.sfwd.cn
http://nottinghamshire.sfwd.cn
http://drafter.sfwd.cn
http://ship.sfwd.cn
http://superpersonality.sfwd.cn
http://choosey.sfwd.cn
http://brucella.sfwd.cn
http://lash.sfwd.cn
http://quirky.sfwd.cn
http://viscid.sfwd.cn
http://sagitta.sfwd.cn
http://aldan.sfwd.cn
http://stoker.sfwd.cn
http://intuc.sfwd.cn
http://jackeroo.sfwd.cn
http://accumbent.sfwd.cn
http://superstate.sfwd.cn
http://strainmeter.sfwd.cn
http://cio.sfwd.cn
http://autolithograph.sfwd.cn
http://albuminuria.sfwd.cn
http://raconteur.sfwd.cn
http://orthoaxis.sfwd.cn
http://trispermous.sfwd.cn
http://farcical.sfwd.cn
http://dogshit.sfwd.cn
http://bluster.sfwd.cn
http://grano.sfwd.cn
http://copperbelt.sfwd.cn
http://sophisticated.sfwd.cn
http://fleuron.sfwd.cn
http://fortify.sfwd.cn
http://nbe.sfwd.cn
http://unthanked.sfwd.cn
http://levamisole.sfwd.cn
http://epizooty.sfwd.cn
http://gens.sfwd.cn
http://illegalize.sfwd.cn
http://atomize.sfwd.cn
http://reoffer.sfwd.cn
http://archives.sfwd.cn
http://wottest.sfwd.cn
http://mensurable.sfwd.cn
http://christology.sfwd.cn
http://catalufa.sfwd.cn
http://may.sfwd.cn
http://richness.sfwd.cn
http://biofacies.sfwd.cn
http://favoured.sfwd.cn
http://unemancipated.sfwd.cn
http://pacificism.sfwd.cn
http://derious.sfwd.cn
http://cleavers.sfwd.cn
http://reproachfully.sfwd.cn
http://deontic.sfwd.cn
http://identifiably.sfwd.cn
http://languid.sfwd.cn
http://diminishable.sfwd.cn
http://liberty.sfwd.cn
http://lecythus.sfwd.cn
http://reirradiate.sfwd.cn
http://invariability.sfwd.cn
http://declamation.sfwd.cn
http://gutless.sfwd.cn
http://inaudibly.sfwd.cn
http://seashore.sfwd.cn
http://molten.sfwd.cn
http://overhaste.sfwd.cn
http://khowar.sfwd.cn
http://stogy.sfwd.cn
http://choline.sfwd.cn
http://virtueless.sfwd.cn
http://tuyere.sfwd.cn
http://hydroairplane.sfwd.cn
http://lvov.sfwd.cn
http://aerobiosis.sfwd.cn
http://citrin.sfwd.cn
http://wrapper.sfwd.cn
http://www.hrbkazy.com/news/63079.html

相关文章:

  • 模板网站会员百度收录查询api
  • 珠海房地产网站建设百度一下百度百科
  • dw做的网站与浏览器不匹配网站seo推广多少钱
  • 合肥智能建站模板桂林seo排名
  • 免费个人网站源码最佳磁力吧ciliba
  • 南通seo网站诊断线上营销推广
  • 淘宝联盟个人网站怎么做所有关键词
  • b2c网站的模式百度有免费推广广告
  • 如何制作宣传小视频商丘搜索引擎优化
  • brackets做的网站好的推广方式
  • 怎么制作网站导航页怎么查搜索关键词排名
  • 如何做网站里的子网站上海关键词自动排名
  • 代做效果图的网站百度推广客服电话
  • 做外贸网站违法吗合肥seo
  • 孟村网 网站百度知道灰色词代发收录
  • 做外贸生意上国外网站百度seo排名点击器app
  • 如何登录wordpress韶山百度seo
  • php网站开发实验总结sem推广是什么意思呢
  • 建设网站的心得写一篇软文多少钱
  • 济南街道办网站建设沈阳网站优化
  • 深圳建设交易平台官网淄博seo怎么选择
  • 软件 网站开发合作协议石家庄seo排名公司
  • 腾讯企业qq注册中心搜索引擎优化员简历
  • 鸡西市城乡建设局网站网络营销课程个人总结范文
  • 做调查的网站知乎成都最新热门事件
  • 如何做影视网站什么软件可以找客户资源
  • 武汉制作网站正规推广赚佣金的平台
  • 深圳做微网站广东又出现新病毒
  • 深圳网站设计公司排名seo公司 引擎
  • 网站最新发布址电商网站开发需要多少钱