摘要:
递归简介 递归是一种解决问题的方法,将问题分解为更小的子问题,直到得到一个足够小的问题可以被很简单的解决,通常递归涉及函数调用自身。 递归三定律 1. 递归算法必须具有基本情况。 2. 递归算法必须改变其状态并向基本情况靠近。 3. 递归算法必须以递归方式调用自身。 举例 递归实现Fibonacci 阅读全文
摘要:
| 排序算法 | 最好时间复杂度|平均时间复杂度 |最坏时间复杂度|空间复杂度|是否稳定| | : : | : : | : : | : : | : : | : : | | 冒泡排序 |$O(n)$|$O({n^2})$|$O({n^2})$| $O(1)$ |是 | | 选择排序 |$O({n^2} 阅读全文
摘要:
定义 二分查找又称折半查找,它是一种效率较高的查找方法。 二分查找要求:线性表是 有序表 ,即表中结点按关键字有序,并且要用向量作为表的存储结构,不妨设有序表是递增有序的。 算法思想 设 是当前的查找区间 1. 首先确定该区间的中点位置; 2. 然后将待查的K值与R[mid].key比较:若相等,则 阅读全文
摘要:
算法思想 1. 先取一个正整数d1 &array) { int len = array.size(); int i, j, gap; // gap为步长,每次减为原来的一半。 for (gap = len / 2; gap 0; gap /= 2) { // 共gap个组,对每一组都执行直接插入排序 阅读全文