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

嵌入式day41

哈希表

将要存储的数据的关键字和位置建立对应的关系,通过哈希函数(散列函数)将数据映射到存储的位置,方便快速查找

哈希冲突/哈希矛盾:

key1 != key2

f(key1) = f(key2)

解决方法:

链地址法

算法

解决特定问题求解步骤

算法的设计:

1.正确性

语法正确

合法的输入能得到合理的结果

对非法的输入,给出满足要求的规格说明

对精心选择,甚至刁难的测试都能正常运行,结果正确

2.可读性,便于交流,阅读,理解 高内聚 低耦合

3.健壮性,输入非法数据,能进行相应的处理,而不是产生异常

4.高效率(时间复杂度)

5.第存储(空间复杂度)

算法时间复杂度

执行这个算法所花时间的度量

将数据量增长和时间增长用函数表示出来,这个函数就叫做时间复杂度

一般用大O表示法:O(n)--- 时间复杂度是关于数据n的一个函数

随着n的增加,时间复杂度增长较慢的算法时间复杂度低

时间复杂度的计算规则

1.用常数1 取代运行时间中的所有加法常数

2.在修改后的运行函数中,只保留最高阶项

3.如果最高阶存在且系数不是1,则去除这个项相乘的常数

排序算法:

稳定性:相同数据,排序后

冒泡:

思想:相邻数据两两比较,小的放前,大的放后

代码:

时间复杂度:O(n^2)

排序算法的稳定性:稳定

选择:

思想:待排数据与后面数据依次比较,将数据放在合适的位置

代码:

时间复杂度:O(n^2)

稳定性:不稳定

插入:

思想:将待排的数据插入到已有的数据中的合适的位置

代码:

时间复杂度:O(n^2)

稳定性:稳定

快速排序:

思想:先设置基准数(begin),从右往左找,第一个比基准数小的数,从左往右找,第一个比基准数大的数,互换两个数,重复刚才的操作,直到p ,q 相遇,内层循环结束后,将p,q所指的元素与基准数交换

代码:

时间复杂度:O(n log n)

稳定性:不稳定

二分查找(折半查找法):

序列必须有序

时间复杂度:O(log n)


http://www.kler.cn/a/297512.html

相关文章:

  • Linux小程序:进度条
  • 音视频入门基础:WAV专题(8)——FFmpeg源码中计算WAV音频文件AVStream的time_base的实现
  • 人工智能,语音识别也算一种人工智能。
  • ML18_EM(Expectation-Maximization)算法详解
  • 字符编码检测
  • Vue.js 组件设计详解
  • 【C++ 面试 - 新特性】每日 3 题(七)
  • 音波效果(纯CSS实现)
  • LeetCode之区间
  • Gin-封装自动路由
  • 计算机毕业设计Pyhive+Spark招聘可视化 职位薪资预测 招聘推荐系统 招聘大数据 招聘爬虫 大数据毕业设计 Hadoop Scrapy
  • 数学建模笔记—— 线性规划
  • Chapter 11 脚手架Vue CLI使用步骤
  • PyTorch维度操作的函数介绍
  • linux高级学习12
  • 运维学习————Zabbix监控框架(1)
  • 高级算法设计与分析 学习笔记3 哈希表
  • LaTeX中算法环境横线/宽度调整(Algorithm)
  • 收银系统源码-收银台(exe、apk安装包)自由灵活操作简单!
  • 【阿雄不会写代码】全国职业院校技能大赛GZ036第五套