算法导论 笔记

来源:互联网 发布:淘宝联盟官方发单助手 编辑:程序博客网 时间:2024/04/28 07:13

摘自网易公开课,麻省理工学院公开课:算法导论,以及其他博客。


二分法  的算法复杂度为O(logn),二分法的关键思想是   假设该数组的长度是N那么二分后是N/2,再二分后是N/4……直到二分到1结束(当然这是属于最坏的情况了,即每次找到的那个中点数都不是我们要找的),那么二分的次数就是基本语句执行的次数,于是我们可以设次数为x,N*(1/2)^x=1;则x=logn,底数是2.  
二分法的前提是数组已经按照顺序进行了排列。

第一课:课程简介及算法分析

插入排序算法Insertion sort

插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
插入排序的性能对于小型问题来说可以满足,但是对于更大规模的排序问题,插入排序并不适用。

归并排序Merge sort

原理,把原始数组分成若干子数组,对每一个子数组进行排序,继续把子数组与子数组合并,合并后仍然有序,直到全部合并完,形成有序的数组.*即使数据规模只有上百,归并排序的性能也要优于插入排序算法。


快速排序Quick sort
通过一趟扫描将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列







经典排序算法网址:http://www.cnblogs.com/kkun/archive/2011/11/23/2260312.html
0 0
原创粉丝点击