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

嵌入式Linux学习 - 数据结构6

五、哈希表

1. 哈希算法

将数据通过哈希算法映射成一个键值,存取都在同一位置实现数据的高效存储和查找

将时间复杂度尽可能降低至O(1)

2. 哈希碰撞

多个数据通过哈希算法得到的键值相同,称为产生哈希碰撞

3. 哈希表

构建哈希表存放0-100之间的数据

将0 - 100之间的数据的个位作为键值

4. 哈希表的相关操作

1. 插入元素

2. 遍历输出哈希表

3. 查找元素’

4. 销毁哈希表

主函数:

结果:

六、排序和查找算法

建立和输出被排序元素10000个

1. 冒泡排序

1. 时间复杂度为O(n^2)

2. 稳定的排序算法

3. 耗时:190 - 210ms

4. 运行原理:相邻的两个元素比较,大的向后走,小的向前走

2. 选择排序

1. 时间复杂度为O(n^2)

2. 不稳定的排序算法

3. 耗时:120 - 130ms

4. 运行原理:从前到后找最小值与前面的元素交换

3. 插入排序

1. 时间复杂度为O(n^2)。若数组有序,时间复杂度降低至O(n)

2. 稳定的排序算法

3. 耗时:70ms - 80ms

4. 运行原理

将数组中的每个元素插入到有序数列中

先将要插入的元素取出

依次和前面元素比较,比元素大的向后走,直到前一个元素比要插入的元素小,或者到达有序数列开头停止

最后插入被取出的元素

4. 希尔排序

1. 时间复杂度为O(nlogn)

2. 不稳定的排序算法

3. 耗时: 5 - 10ms

4. 运行原理

通过选择不同的步长,将数组拆分成若干个小的数组实现插入排序

若干个小的数组称为有序数列后,使得数组中的数据大致有序

最后再对整体完成一个插入排序

5. 快速排序

1. 时间复杂度为O(nlogn)

2. 不稳定的排序算法

3. 耗时:4 - 10ms

4. 运行原理

选择左边的作为键值,从后面找一个比键值小的放前面,从前面找一个比键值大的放后面

左右两边有元素则递归调用快速排序

  

6. 折半查找 -- 二分查找

http://www.dtcms.com/a/321634.html

相关文章:

  • 【设计模式】抽象工厂模式 (工具(Kit)模式)
  • PPT科研绘图实践笔记(持续更新)
  • AI 编程工具使用心得与对比评测
  • Python实现点云PCA配准——粗配准
  • 三种经典寻路算法对比
  • 微服务的好与坏
  • kafak
  • 经常问的14000
  • HTML5 Web Workers 深度剖析:助力网页性能飞速提升
  • imx6ull-驱动开发篇14——原子操作
  • FFmpeg 视频旋转信息处理:3.4 vs 7.0.2
  • 开发避坑指南(22):Vue3响应式编程中this绑定机制与解决方案
  • C++ 部署LSTM(.onnx)
  • 大模型中的核心参数temperature 您知道是什么东东吗?
  • KEIL 环境下 printf 导致程序无法执行的解决方案
  • GPT5评测对比与使用
  • 2025年城市建设与智慧交通国际会议(ICUCIT 2025)
  • OpenAI重磅开源回归!GPT-OSS-120B/20B登陆星辰MaaS
  • 【长度最小的子数组】
  • C++ 红黑树实现详解:理论+代码+图解
  • 主流多模态大模型使用总结
  • GPT-5测评:AI新纪元的开启还是炒作?
  • 【SpringBoot】01 基础入门-SpringBoot2:从核心技术到响应式编程
  • Jenkins自动化构建部署Java、Web前后端项目
  • 使用Python将中文语音翻译成英语音频
  • 达梦DISQL执行SQL和SQL脚本
  • 医疗数据中台架构实战:Java实现高可用、低耦合的数据治理方案
  • 30人大型视频会议设备清单
  • 零基础小白如何使用QGIS制作研究区地形区位图教程
  • 参数服务器 server and client