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

自己做网站在线看pdf餐馆效果图网站

自己做网站在线看pdf,餐馆效果图网站,排名点击软件,淘客自己的网站怎么做1. 计数排序概述(问题与思想) 问题:计数排序是用于对整数序列进行排序,前提是所有待排序的记录都属于区间 [0, k]。算法通过计算每个元素 x 小于 x 的记录数,直接将 x 放到正确的位置。 步骤: 步骤 1&…

1. 计数排序概述(问题与思想)

  • 问题:计数排序是用于对整数序列进行排序,前提是所有待排序的记录都属于区间 [0, k]。算法通过计算每个元素 x 小于 x 的记录数,直接将 x 放到正确的位置。

  • 步骤

    1. 步骤 1:计算值为 i 的记录的个数(1 ≤ i ≤ k),并将其存储在数组 num[i] 中。

    2. 步骤 2:计算小于或等于 i 的记录数(1 ≤ i ≤ k),并将该信息存储在另一个数组 num[i] 中。

    3. 步骤 3:逆序读取数组 A[n],并根据 num[i] 数组中的信息,将元素放到新数组 B 的正确位置。

  • 示例序列
    输入数组 A[n] = {2, 1, 5, 2, 4, 3, 0, 5, 3, 2},且 k = 5。算法通过计算每个元素出现的次数,并将它们放置到新数组 B 的正确位置。

2. 为什么逆序读取数组 A[n]

  • 解释:之所以要逆序读取数组,是因为我们需要根据每个元素小于或等于它的元素个数来确定该元素在数组 B 中的位置。而这一过程不能就地进行,需要使用额外的数组(例如 num[i])来存储计数值,从而帮助正确地将元素放到 B 中。

    逆序读取确保了当一个元素多次出现时,最后一个出现的元素会被优先放置到前面,这保持了排序的稳定性(即相同值的元素会保持它们原来的相对顺序)。

3. 计数排序算法

算法的具体步骤如下:

  • 输入:待排序数组 A[n] 和元素的取值区间最大值 k

  • 输出:排序后的数组 B[n]

  • 步骤

    1. 计算数组 A[n] 中每个元素的出现次数,并将结果存储在 num[i] 中。

    2. 计算小于或等于 i 的元素个数,并将其存储在 num[i] 中。

    3. 逆序读取数组 A[n],根据 num[i] 中的值将元素放入数组 B 中。

    4. 输出排序后的数组 B[n]

该算法的时间复杂度为 O(n + k),其中 n 是数组 A[n] 的元素个数,k 是元素的最大值。

简而言之,计数排序非常适合用于对整数数据进行排序,尤其是当数据的范围 [0, k] 相对较小而元素数量 n 较大的情况。但当数据范围非常大时,计数排序则不适用。

下面是实现计数排序的完整代码:

计数排序代码(Python实现)

def counting_sort(A):# Step 1: 找到数组中的最大值 k,定义 num 数组大小为 k+1k = max(A)num = [0] * (k + 1)  # 记录每个元素出现的次数B = [0] * len(A)  # 存储排序后的结果# Step 2: 统计每个元素出现的次数for i in range(len(A)):num[A[i]] += 1# Step 3: 计算每个元素小于等于它的个数for i in range(1, len(num)):num[i] += num[i - 1]# Step 4: 逆序读取数组 A,根据 num 数组中的信息,将元素放入 B 中for i in range(len(A) - 1, -1, -1):B[num[A[i]] - 1] = A[i]num[A[i]] -= 1return B# 示例
A = [2, 1, 5, 2, 4, 3, 0, 5, 3, 2]
print("原数组:", A)
sorted_A = counting_sort(A)
print("排序后的数组:", sorted_A)

代码解释:

  1. 输入数组 A:我们要排序的数组,A[n] = {2, 1, 5, 2, 4, 3, 0, 5, 3, 2}

  2. k 的计算:首先,我们计算数组 A 中的最大值 k,用于确定计数数组 num 的大小。因为计数排序是基于元素的大小范围来处理的。

  3. num 数组:用于存储每个元素的出现次数。num[i] 存储的是元素 i 在数组 A 中出现的次数。

  4. num[i] 数组的累加:我们通过累加计算每个元素小于或等于它的个数。这样,num[i] 就表示了数组中小于或等于 i 的元素个数。

  5. 逆序填充数组 B:在排序过程中,我们从数组 A 的末尾开始读取,按照 num 数组的计数信息,逐一将元素放入新的数组 B 中。

  6. 返回排序后的数组 B

输出示例:

原数组: [2, 1, 5, 2, 4, 3, 0, 5, 3, 2]
排序后的数组: [0, 1, 2, 2, 2, 3, 3, 4, 5, 5]

总结:

  • 计数排序的核心思想是:首先统计每个元素的出现次数,然后计算每个元素小于或等于它的元素个数,最后通过反向填充的方式将元素放到正确的位置。

  • 时间复杂度O(n + k),其中 n 是数组的长度,k 是数组元素的最大值。

  • 空间复杂度O(k),需要额外的数组来存储计数信息。


文章转载自:

http://3rLd2qxL.msLsn.cn
http://TO16BaZw.msLsn.cn
http://zVEsKYy9.msLsn.cn
http://YiBUePQd.msLsn.cn
http://ATUO8gh5.msLsn.cn
http://bdJZB0Jk.msLsn.cn
http://nDaUrPo1.msLsn.cn
http://Q1dGFy2K.msLsn.cn
http://bxhZhykL.msLsn.cn
http://jGfXZUWy.msLsn.cn
http://aXKLhlwb.msLsn.cn
http://JIy9PSIH.msLsn.cn
http://gIeiVZc8.msLsn.cn
http://Bgx8cv9H.msLsn.cn
http://MtRRcqSu.msLsn.cn
http://TBPGzGFu.msLsn.cn
http://Pb4SRIuV.msLsn.cn
http://70fWQqzG.msLsn.cn
http://Pz6vGwlL.msLsn.cn
http://cEVzHOji.msLsn.cn
http://9PXQ1JHK.msLsn.cn
http://2wmToO4A.msLsn.cn
http://6mwiEWdT.msLsn.cn
http://fb1NCokv.msLsn.cn
http://IdZLRtHf.msLsn.cn
http://mkxq98iS.msLsn.cn
http://HNppxiRw.msLsn.cn
http://g61aBWYK.msLsn.cn
http://ANWYbKQE.msLsn.cn
http://28KaI2Hv.msLsn.cn
http://www.dtcms.com/wzjs/739863.html

相关文章:

  • 求职网站怎么做公众号电脑版登陆入口
  • 佛山网站排名推广刚做的网站怎么才能搜索到
  • 网站建设时间如何查询网站被301跳转
  • 网站宝搭建网站环境石家庄企业商城版网站建设
  • 南宁 网站开发蓝色风格网站模板
  • 河间网站国家企业信用信息公示系统官网(全国)
  • 建设小型网站企业网站建设栏目结构图
  • 唐山网站建设求职简历网站开发计入会计 什么科目
  • 编程和做网站有关系吗基层建设刊物网站
  • 天津圣辉友联做网站ps设计网站首页效果图
  • 做网站的疑问有哪些wordpress 生成ppt
  • 网站管理建设站酷网网址
  • 创一家网站wordpress设置全屏
  • 黄冈建设培训中心网站wordpress 发布说说
  • 毕业设计查资料的网站注册深圳公司的费用
  • 做简历的什么客网站网站制作工具 简易
  • 企业网站建设合同书模板免费制作logo的网站
  • 怎么用视频做网站首页中国著名摄影网站
  • 快速建立平台网站开发建站教程详解济南正规做网站公司
  • 南通快速建设网站服务连云港规划建设网站
  • 南京500元做网站网上注册公司官网入口
  • 图书管理系统网站开发绪论wordpress营销模板下载
  • 网站开发要花多少钱做微信请帖网站
  • 苏州建站公司兴田德润简介呢百度代理公司查询
  • 线上兼职的正规网站建设公司简介怎么写
  • 网站维护 html郑州建设网站
  • 佛山网站商城建设asp网站开发实训总结
  • 手机wap网站制作免费wordpress升级php7
  • 网站更换服务器怎么做门户网站开发 南宁
  • 蒙古网站后缀肥东住房和城乡建设部网站