前段时间Java学了,数据结构与算法看了,机器学习也了解了一点,还装上Ubuntu了解了Linux。接受的东西太多太杂,需要梳理一下。
首先是最重要的数据结构和算法,无论以后搞什么,只要是计算机方面的,都是在这基础上开展的,所以我前段时间着重花了很多时间在上面,接下来也还要继续,这点是要明确的。机器学习的算法可以后面再接着补。
首先说排序,我把排序分成七大算法,分法如图:
1. 插入排序
1.1 直接插入排序
直接插入排序有两层循环,其算法主要思路是:第一层循环从1->n,第二层循环从待插入的第i个元素开始往回循环,前面的元素都是已经排好序的。将a[i]依次和i-1,i-2,...比较,将其插入到正确位置。用图示表示如下:
时间复杂度、空间复杂度、稳定性、适用场合列如下图: