随笔分类 - 数据结构与算法
摘要:查找里面顺比表查找和有序表查找(包括二分查找,插值查找,斐波那契查找)比较简单,直接贴代码,代码里面有详细注释。 运行结果:
阅读全文
摘要:1、两个栈实现一个队列 有三种思路: 思路一:将stack1作为存储空间,将stack2作为临时缓冲区,入队时,直接压入stac1,出队时,将stack1中的元素依次出栈压入stack2中,再将stack2的栈顶元素弹出,最后将stack2中的元素再倒回给stack1 思路二:入队时,判断stack
阅读全文
摘要:堆排序是对简单选择排序算法的一种改进。可以构建大顶堆(每个结点的值都大于等于其左右孩子的值)也可以构建小顶堆(每个结点的值都小于等于其左右孩子的值)。堆排自我感觉代码理解起来还是有点难,主要是如何构建一个新堆以及输出堆顶元素后,怎样调整剩余元素成为一个新堆。 1、堆排代码 2、堆调整代码 堆排测试完
阅读全文
摘要:希尔排序是对直接插入排序的改进,它利用了跳跃分割的策略,将相隔某个增量的记录组成一个子序列,实现跳跃式的移动。先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接
阅读全文
摘要:转自:http://blog.csdn.net/xiexievv/article/details/45795719 在计算机科学所使用的排序算法通常被分类为: 计算的时间复杂度(最差、平均、和最好性能),依据列表(list)的大小(n)。一般而言,好的性能是O(n log n),且坏的性能是O(n2
阅读全文
摘要:也是在做链表题目时,有一道题是用链表结构进行插入排序,因此,对插入排序的数组结构和链表结构做了一个总结,并分析了它们的复杂度。 插入排序:将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录数增加1的有序表。 1、顺序表的插入排序 关键:有两重循环,第一层循环是遍历所有无序元素,第二层循环是
阅读全文
摘要:1、二叉树的每个根节点到叶节点的路径代表一个数字,求所有根节点到叶节点所组成数字的和。 sum=12+13=25 2、计算二叉树的最大深度 3、计算二叉树的最小深度 4、二叉树中叶子节点个数
阅读全文
摘要:最近在做链表算法题时,涉及到了归并排序,索性重新研究一下各种排序方法及其复杂度。 排序中比较复杂一点的是归并排序,思想时比较容易理解的,但是代码写起来没那么容易,该排序方法涉及到了分解和合并两个思想,其实是应用了分治的思想进行排序。 首先是对两个有序序列的合并,注意:合并的前提是:两个数组序列是有序
阅读全文
摘要:一、前序遍历 前序遍历简单来讲,遍历顺序是:根节点-左子树-右子树 1、递归遍历 2、迭代遍历(用栈实现) 二、中序遍历 遍历顺序是:左子树-根节点-右子树 1、递归遍历 2、迭代遍历(用栈实现) 三、后序遍历 遍历顺序:左子树-右子树-根节点 1、递归遍历 2、迭代遍历(用栈实现) 四、层序遍历
阅读全文

浙公网安备 33010602011771号