CS50 2016-Week3 学习笔记

124 篇文章 0 订阅

上一课讲了数组,这节课顺利过渡到了数组的查找、排序。

即查找算法、排序算法。

关于查找算法,除了常见的linear search ,binary search ,还有好多好多。下面是常见的七大查找算法:


  1. 顺序查找
  2. 二分查找
  3. 插值查找
  4. 斐波那契查找
  5. 树表查找
  6. 分块查找
  7. 哈希查找


排序算法,除了冒泡排序、插入排序、归并排序,还有很多很多其他的排序算法。(见维基百科- 排序算法


讲到算法,课中自然提到的算法复杂度,O、Ω、Θ 这些记号。

O表示上界,即最坏情况下需要运行的时间(步)。
Ω表示下界,即最好情况下需要运行的时间(步)。
Θ表示准确界限,O=Ω时,可以用Θ表示。


  • 常见的是大O:
  • O(1) denotes constant running time.
  • O(n) denotes linear running time.
  • O(log n) denotes logarithmic running time.
  • O(nlog n) denotes log-linear running time.
  • O( nk ) denotes polynomial running time.
  • O( cn ) denotes exponential running time.

网上有许多排序算法、查找算法复杂度的总结。
可以参考:每个程序员都应该收藏的算法复杂度速查表


关于这些算法的实现,可需要一些时间。
以前的几篇笔记有了部分python的实现,这里就不写了,以后会另外总结的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值