
数据结构
无鞋童鞋
有远大抱负的人不可忽略眼前的工作
展开
-
C++实现改进的冒泡排序
冒泡排序法(Bubble Sort),即起泡排序并不能改观普通排序的时间复杂度,还是O(n^2)。冒泡排序法是从后往前两两比较,然后遍历整个数组,犹如鱼吐水泡,故起此名。而普通排序法是遍历整个数组,然后每个元素和后面的所有元素进行比较,升序则是后面小的和该元素互换位置,但这样可能将很小的元素移到后面。 改进的冒泡排序是通过设立一个标志位Flag,当检测到升降序排序时完成时候,置位标志位Flag原创 2016-10-12 19:21:29 · 2626 阅读 · 0 评论 -
面试之排序算法的稳定性
1. 稳定排序和不稳定排序的区别: 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地转载 2017-03-09 10:35:23 · 583 阅读 · 0 评论 -
数据搜索之二分查询
数据搜索中,如果给定数据集是乱序的情况下一般我们使用顺序搜索按位查询是最常用的方法。但是一旦数据是顺序的,二分法则能大大减少数据搜索的工作量。尤其在几十万甚至上亿的数据量情况下,它的效率就能大大的体现。 二分法的思想是通过每次把数据集所在小区间收缩一半的方法,使区间的两个端点逐步迫近待查询的数,以求得该数所在的索引。这种方法叫做二分法。 程序如下:#include<iostream>u原创 2017-03-11 12:53:08 · 626 阅读 · 0 评论 -
冒泡排序优化之鸡尾酒排序法
鸡尾酒排序法,又名双向冒泡排序法,算法传统冒泡法的一点改进。但是对于鸡尾酒排序,算法的时间复杂度与空间复杂度并没有改进。 不同的是排序的交换次数。某些情况下鸡尾酒排序比普通冒泡排序的交换次数少。比如{2,3,4,1},鸡尾酒排序只需交换2次,而冒泡排序需要三次。总体上,鸡尾酒排序可以获得比冒泡排序稍好的性能。但是完全逆序时,鸡尾酒排序与冒泡排序的效率都非常差。 鸡尾酒排序的思想就是在从前原创 2017-03-11 12:11:36 · 2080 阅读 · 1 评论 -
链表翻转的图文讲解(递归与迭代两种实现)
链表的翻转是程序员面试中出现频度最高的问题之一,常见的解决方法分为递归和迭代两种。最近在复习的时候,发现网上的资料都只告诉了怎么做,但是根本没有好好介绍两种方法的实现过程与原理。所以我觉得有必要好好的整理一篇博文,来帮忙大家一步步理解其中的实现细节。 我们知道迭代是从前往后依次处理,直到不满足判断条件;而递归恰恰相反,首先一直迭代到结尾也就是递归基,然后再逐层返回处理到开头。 链表翻转操原创 2017-05-17 15:25:20 · 60019 阅读 · 22 评论 -
二叉树的层序遍历详细讲解(附完整C++程序)
1 说明 二叉树的层序遍历是面试经常会被考察的知识点,甚至要求当场写出实现过程。笔者先后被腾讯和滴滴面试官问过这个问题,腾讯面试官是让称述整个实现过程,本人自信满满的说出来了,所以也没有对具体实现太上心。等到滴滴面试的时候,让我详细写出实现,真正上手之后发现原理懂,但是如果没有朝一个正确的方向努力原来还是蛮棘手的,等下我再说本人卡壳在哪个地方了。2 原理介绍 层序遍历所要解决的问题很好理解,原创 2017-07-03 22:23:04 · 32289 阅读 · 3 评论 -
C++中数组、链表和vector等容器之间的区别
1. 各个容器之间区别① vector (连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间岁间的插入,删除元素要慢,而且如果一开始分配的空间不够的话,有一个重新分配更大空间,然后拷贝的性能开销。② deque (小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以使用[],只是速度没有vector快)快原创 2016-10-12 09:05:04 · 16700 阅读 · 1 评论 -
数据库索引中包含的数据结构有哪些
1 索引介绍 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。 我们知道,数据库查询是数据库的最主要功能之一,例如下面的SQL语句:SELECT * FROM my_table WHERE col2 = '77' 可以从表“my_table”中获得“col2”为“77”的数据记录。 我们转载 2017-08-06 18:20:36 · 9720 阅读 · 0 评论