本文为麻省理工学院《算法导论》课程第一讲的学习笔记。
网易云课堂上该课程的网站为http://open.163.com/special/opencourse/algorithms.html。
第一部分 算法分析(Analysis of Algorithm)
目录
6. 递归树(Recurrence Tree)--解决递归问题的方法
1. 前言
A course about performance(可行vs不可行)--关于算法与性能的课程。
性能就像获得其他方面提高(准确性、稳定性、用户友好性等)的”货币“。
2. 插入排序(insertion sorting)
排序问题:输入为一个序列{a1, a2, ... ,an},输出一个重新排列后的序列{a1', a2', ... , an'},使其满足某种排列要求。者皆可以插入排序为例进行讲解,后续还会涉及更多排序问题。
插入排序
设置两个循环。外循环j取由1到n,内循环i取由j-1到1;外循环用于依次判断当前的键值key,内循环用于寻找当前key应该插入的位置。【在每一次循环中,已经被排列好的部分(j项之前)保持不变。】
如下图例子(图片来自于百度百科词条“直接插入排序”):