3分钟学算法.01.数据结构和算法初探

1.常见八大类数据结构

数组

队列
链表

哈希表(散列表)

2.常见算法

名称英文名称*平均时间复杂度最好时间复杂度最差时间复杂度*空间复杂度*稳定性
选择排序Selection1不稳定
冒泡排序Bubblen1稳定
*插入排序Insertionn1稳定
希尔排序Shelln^1.3n1不稳定
*归并排序Merge
*快速排序
桶排序
计数排序
基数排序

星号是一定要熟记于心的。1

3.如何验证一个算法的正确性?

2.1 肉眼判别:如果算法复杂,肉眼不够可靠。
2.2 尽可能使用多的随机样本:单个样本的结果可能会有遗漏,样本越多准确率越高。
2.3 使用已知正确的算法对比自己的算法。

4.算法的性能

复杂度用大写字母O表示,大O符号根据其增长率来表征功能。

时间复杂度是[解决问题的方法]所消费的[时间]随着[计算规模]而[变化]的[规律]。
举个栗子
有一个数组{1,2,3,4,5},计算他们的和需要逐个相加,一共需要加4次。
解决问题的方法:加法,
所消费的时间:求和要加(5-1)次,
计算规模:5个数,规模就是5,
变化的规律:每多1个数字,则需要多加一次,每多n个数字,则需要多加n-1次。
很明显,其时间复杂度就是O(n-1)。

空间复杂度是[解决问题的方法]所消费的[空间]随着[计算规模]而[变化]的[规律]。一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个方面。
举栗:求6的分解质因数有哪些,解为{2,3},原本只有一个数6,算完就变成了俩,其占用的存储空间翻倍,那么其空间复杂度为O(2)

排序算法的稳定性:
假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,则称这种排序算法是稳定的;否则称为不稳定的。

持续更新…

欢迎各位评论交流指点,您的每一分评论和关注都是对星图的莫大鼓励!
如果对各位大佬有帮助,也请点个赞吧hhhh~

欢迎阅读下一篇《3分钟学算法.02.选择排序》


  1. 文献来源:马士兵说,《30秒让你记住所有排序算法-宋词记忆法》,B站,2019-03-18 ↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值