![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 83
小点宝
这个作者很懒,什么都没留下…
展开
-
单链表逆序
点击打开链接 第二个题目是很经典的“单链表逆序”问题。很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间,有的没有明确说明,但是如果面试者使用了额外的节点存储空间做中转,会得到一个比较低的分数。如何在不使用额外存储节点的情况下使一个单链表的所有节点逆序?我们先用迭代循环的思想来分析这个问题,链表的初始状态如图(1)所示:图(1)初始状态转载 2015-04-07 09:46:18 · 295 阅读 · 0 评论 -
快排
算法思想:快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。快速排序(QuickSort)的最坏时间复杂度应为0(n2),最好原创 2015-04-29 17:00:37 · 351 阅读 · 0 评论 -
堆排序
原文链接1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]2.堆排序的思想转载 2015-05-14 20:26:23 · 316 阅读 · 0 评论 -
最大的K个数
原文链接给定一个N个数的数组arr[N],任意排列,选出其中最大的K个数。方法1:排序,取后K个数。复杂度: O(NlogN)方法2:partition,随意选一个数组中的数key,对数组进行划分,返回位置pos,如果pos右侧的数等于K,则结束,如果大于K,则再对从pos到数组尾的子数组进行partition,如果小于K,则对从数组头到pos位置的子数组进行par转载 2015-05-15 10:16:53 · 350 阅读 · 0 评论