![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 81
qq_36080738
这个作者很懒,什么都没留下…
展开
-
莫名其妙的算法们:排序(一)
排序可是说是算法里面的经典问题了。排序算法的发展史,可以看作是算法进化史的一个缩影。启蒙在这一阶段的算法明确地提出了排序问题,并给出了简单易行的解决方案。虽然局限于奢侈的时间复杂度,但为后序的发展给出了良好的开端。冒泡排序冒泡排序几乎是每个初学者最早接触到的排序方案。其大体思想是每次遍历时,逐一比较相邻的两元素,将较大者交换至右侧。这样每次遍历都可以将当前序列的最大值交换至序列的最右端。不断进行以上原创 2017-07-01 20:42:57 · 306 阅读 · 0 评论 -
剑指OFFER纪念版(5)
第5章:优化时间和空间效率面试题29:数组中出现次数超过一半的数字 如果是已经排好序的数组,则该数字一定是中位数。但排序需要O(NlogN)的时间。 在遍历数组的时候,可以用哈希表记录下每个数字出现的次数,如果发现当前遍历的数字出现次数高于数组长度一半,输出即可。 哈希表有常数级的访问操作,实际上等同于一种“开挂”。 可以利用快排的思想,当发现分割点小于数组中心点时,只排右边的部分,而不是两个部分原创 2017-09-02 16:30:37 · 222 阅读 · 0 评论 -
剑指OFFER(6)
面试题38:数字在排序数组中出现的次数显然这是要用二分搜索。不同的是,数字会出现多个。 包含重复数值的二分搜索,重点在于,a[mid]==k的情况: int first(int* a,int n,int k){ if(a[0]>k||a[n-1]<k) return -1; int left=0,right=n-1; w原创 2017-09-05 17:32:49 · 177 阅读 · 0 评论 -
剑指OFFER纪念版(1-3)
第一章 面试的流程应聘者的项目经验 项目背景 完成的任务 为完成任务做了哪些工作,怎么做的 自己的贡献 问题: 1. 在项目中遇到的最大的问题是什么,怎么解决的? 2. 从项目中学到了什么 3. 等等第二章 面试需要的基础知识2.2编程语言问: 定义一个空的类型,求sizeof的结果。 答:通常为1(或0)取决于编译器。因为对象必须占用一定的空间。 问:如果内定义函数呢? 答:除了虚函数原创 2017-08-31 11:00:49 · 461 阅读 · 0 评论 -
剑指OFFER纪念版(4)
第四章:解决面试题的思路面试题19:二叉树的镜像二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \原创 2017-09-01 22:15:52 · 180 阅读 · 0 评论