数据结构
90阿呆
这个作者很懒,什么都没留下…
展开
-
快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序转载 2014-07-31 09:50:37 · 355 阅读 · 0 评论 -
二叉树的三种遍历方式
根据书上的解释,前序、中序、后序遍历的区别在于原创 2014-07-07 11:02:08 · 407 阅读 · 0 评论 -
二叉树的线索化
线索化的实质是将二叉链表中的空指针改为指向前驱或后继的线索,前驱和后继的信息是在遍历过程中才能得到,故线索化的过程即为在遍历过程中修改空指针的过程。转载 2014-07-08 14:48:34 · 442 阅读 · 0 评论 -
稳定排序和不稳定排序
转自: 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排转载 2014-07-31 09:53:55 · 342 阅读 · 0 评论 -
二叉查找树的删除
总体思想:分多种情况讨论 1.被删除节点没有子树的情况,直接删除,并修改对应父节点的指针为空。 2.对于只有一个子树的情况,考虑将其子树作为其父节点的子树,关于是左还是右,根据被删除的节点确定。 3.最复杂的是有两个子数的情况,可以考虑两种方法,都是同样的思想:用被删除节点A的左子树的最右节点或者A的右子树的最左节点作为替代A的节点,并修改相应的最左或最右节点的父节点的指针,修改原创 2014-07-05 18:38:06 · 583 阅读 · 1 评论 -
堆排序
堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。 1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶转载 2014-08-21 20:25:58 · 365 阅读 · 0 评论 -
归并排序
归并排序是一种外部存储设备最常用的排序方法。归并飘絮原创 2014-07-31 16:47:51 · 547 阅读 · 0 评论