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

归并排序和统计排序

一,归并排序说明

步骤

  1. 分解阶段

    • 将数组从中间分成左右两个子数组。

    • 对左右子数组递归地继续分解,直到子数组长度为1(天然有序)。

  2. 合并阶段

    • 比较两个子数组的首元素,将较小的元素放入临时数组。

    • 重复上述过程,直到其中一个子数组被完全合并。

    • 将剩余子数组的元素直接追加到临时数组末尾。

    • 将临时数组拷贝回原数组的对应位置。

二,代码实现

三,计数排序

计数排序是在1954年由Harold H.Seward提出,适合对一定范围内的整数进行排序。

计数排序核心思想:统计每个整数在序列中出现的次数,进而推导出每个整数在有序序列中的索引。 我们以数组[1,4,1,2,5,2,4,1,8]为例进行说明。

第一步:建立一个初始化为0,长度为9 (原始数组中的最大值8加1)的数组count[]

第二步:遍历数组[1,4,1,2,5,2,4,1,8],访问第一个元素1,然后将数组标为1的元素加1,表示当前1出现 了一次,即 count[1] = 1; 依次遍历,对count进行统计。

四,桶排序

桶排序 其实桶排序重要的是它的思想,而不是具体实现,桶排序从字面的意思上看:

1、若干个桶,说明此类排序将数据放入若干个桶中。

2、每个桶有容量,桶是有一定容积的容器,所以每个桶中可能有多个元素。

3、从整体来看,整个排序更希望桶能够更匀称,即既不溢出(太多)又不太少。

假设有一个非整数数列,

如下: 4.5, 0.84, 3.25, 2.18, 0.5

桶排序的第1步,就是创建这些桶,并确定每一个桶的区间范围。

[0.5, 1.5)[1.5, 2.5)[2.5, 3.5)[3.5, 4.5)[4.5, 4.5] 具体需要建立多少个桶,如何确定桶的区间范围,有很多种不同的方式。我们这里创建的桶数量等于原始数列的元素数量,除最后一个桶只包含数列最大值外,前面各个桶的区间按照比例来确定。区间跨度= (最大值-最小值) / (桶的数量-1)

第2步,遍历原始数列,把元素对号入座放入各个桶中。

第3步,对每个桶内部的元素分别进行排序。 第4步,遍历所有的桶,输出所有元素。 0.5, 0.84, 2.18, 3.25, 4.5

http://www.lryc.cn/news/622046.html

相关文章:

  • 智能工厂生产监控大屏-vue纯前端静态页面练习
  • AI智能体在软件测试中的应用与未来趋势
  • 开疆智能Ethernet转ModbusTCP网关连接测联无纸记录仪配置案例
  • python-pycharm切换python各种版本的环境与安装python各种版本的环境(pypi轮子下载)
  • C++第二十课:快递运费计算器 / 黑白配+石头剪刀布小游戏
  • SAP ALV导出excel 报 XML 错误的 /xl/sharedStrings.xml
  • 2025.08.09 江门两日游记
  • 4.2 寻址方式 (答案见原书 P341)
  • LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。
  • 硬件实现webrtc的编解码
  • 从前端框架到GIS开发系列课程(26)在mapbox中实现地球自转效果,并添加点击事件增强地图交互性
  • 【自动化运维神器Ansible】Ansible算术运算符详解:实现配置文件的动态计算
  • MS5905P 一款 12bit 分辨率的旋变数字转换器
  • GaussDB 常用数值类型
  • 在Ubuntu 22.04上安装远程桌面服务
  • C语言指针(五):回调函数与 qsort 的深层关联
  • 【大模型微调系列-03】 大模型数学基础直观入门
  • Codeforces Deque工艺
  • 专题三_二分_x 的平方根
  • Swift 实战:用最长递增子序列算法解“俄罗斯套娃信封”问题(LeetCode 354)
  • Effective C++ 条款42:了解 typename 的双重含义
  • 旅游管理实训室:旅游教育实践育人的关键支撑
  • spring中异步任务注解@Async和@scheduled的使用
  • 5G赋能井下“毛细血管”:巴拉素煤矿零散排水点智能监控系统
  • 基于阿里云音频识别模型的网页语音识别系统实现
  • Spring WebFlux 性能优化实践指南
  • 近日算法备案事项:九月批复审即将启动/赶11月批最后安全启动时间已过
  • week1-[顺序结构]跑道
  • YAML 中定义 List 的几种方式
  • WEB安全--Java安全--Servlet内存马