CS50 2016-Week3 学习笔记
来源:互联网 发布:网络黑白 百度文学 编辑:程序博客网 时间:2024/05/17 23:34
上一课讲了数组,这节课顺利过渡到了数组的查找、排序。
即查找算法、排序算法。
关于查找算法,除了常见的linear search ,binary search ,还有好多好多。下面是常见的七大查找算法:
- 顺序查找
- 二分查找
- 插值查找
- 斐波那契查找
- 树表查找
- 分块查找
- 哈希查找
排序算法,除了冒泡排序、插入排序、归并排序,还有很多很多其他的排序算法。(见维基百科- 排序算法)
讲到算法,课中自然提到的算法复杂度,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.
常见的是大O:
网上有许多排序算法、查找算法复杂度的总结。
可以参考:每个程序员都应该收藏的算法复杂度速查表
关于这些算法的实现,可需要一些时间。
以前的几篇笔记有了部分python的实现,这里就不写了,以后会另外总结的。
阅读全文
0 0
- CS50 2016-Week3 学习笔记
- CS50 2016-Week4 学习笔记
- CS50 2016 Week9 学习笔记
- CS50 2016 Week10 学习笔记
- CS50 2016-Week 0 学习笔记
- CS50 2016-Week 1 学习笔记
- CS50 2016-Week 2 学习笔记
- CS50 2016 Week 7 学习笔记
- CS50 2016 Week 8 学习笔记
- CS50 2013-Week5 学习笔记
- CS50笔记
- 网易公开课哈佛大学CS50学习笔记
- 【KMP】Hihocoder/Week3 学习笔记
- Coursera机器学习 Week3 笔记
- deeplearing.ai week3 学习笔记
- 公开课学习笔记-[哈佛]计算机科学CS50(一)
- 公开课学习笔记-[哈佛]计算机科学CS50(二)
- 公开课学习笔记-[哈佛]计算机科学CS50(三)
- ie8 SCRIPT5007: 无法获取save未定义或 null 引用的属性
- 设计模式---创建型模式
- 自定义hibernate validation 注解
- 数组3个数乘积的最大值
- 最大子数组
- CS50 2016-Week3 学习笔记
- Head First Java 总结(三)
- iOS-OC创建链式语法(链式编程)
- JS小技巧-弹窗界面的js引用背景页面js中的变量。
- Ubuntu16.04+CUDA8.0+CUNN5.1+caffe+tensorflow+Theano
- llvm安装libclang3.9
- python中time和random模块的使用
- Fragment中多次调用onCreatView()导致异常问题的解析
- 11.多线程模型的echo服务器