学习是一辈子的事。
假如书是攀登知识高峰的阶梯,那么,想必每个人都想攀登上这座高高的山峰。
构造二叉排序树与前序遍历、中序遍历、后序遍历的递归和非递归实现 构造二叉排序树与前序遍历、中序遍历、后序遍历的递归和非递归实现
前序遍历、中序遍历、后序遍历的递归和非递归实现前序遍历顺序:根->左->右。中序遍历顺序:左->根->右。后序遍历顺
尾插法创建链表、打印链表、合并两个有序链表 尾插法创建链表、打印链表、合并两个有序链表
注意:链表默认没有头节点,第一个节点就有值。 C/C++代码# include <iostream> # include <ve
斐波那契数列:从分治法到动态规划 斐波那契数列:从分治法到动态规划
分治法思想分治法的适用条件: 问题的规模缩小到一定程度就可以容易地解决; 问题可以分解为若干个规模较小的相同问题,即问题具有最优子结构性质
堆排序 堆排序
基本思想堆排序是不稳定的排序算法。常见的不稳定排序算法有四种:快速排序、希尔排序、选择排序、堆排序。堆是具有以下性质的完全二叉树:每个结点的
归并排序 归并排序
基本思想归并排序是稳定的排序算法。归并排序使用的是分治思想,将一个大问题分解为小的子问题来解决。分治算法一般都是用递归来实现的。要对数组区间
快速排序 快速排序
基本思想快速排序是不稳定的排序算法。假设最终结果是递增有序的。快速排序的基本思想是选取一个记录作为枢轴,经过一趟排序,将整段序列分为两个部分
选择排序 选择排序
基本思想选择排序是不稳定的排序算法。假设最终结果是递增有序。在长度为N的无序数组中,第一次选定第一个位置上的元素,然后遍历后面n-1个数,找
插入排序 插入排序
基本思想插入排序显然是稳定排序算法。假设最终结果是递增有序。默认数组的首个元素是有序的,这部分看成部分有序的子数组,后面看成无序的子数组。从
冒泡排序 冒泡排序
基本思想冒泡排序显然是稳定的排序算法。假设最终结果是递增有序。使用两层循环,内层循环每轮从头到尾比较相邻数字并交换;外层循环确保最大的数最多