
数据结构
文章平均质量分 86
0x00b
while(sleep){money++;}
展开
-
不改变正负数相对顺序,重排数组,使负数在正数之前
最近看到了来自 v_JULY_v的博客一个关于这个问题的解决(原文链接 :nhttp://blog.youkuaiyun.com/v_JULY_v/article/details/7329314),其中第一句话引起了我的兴趣,原话(一直未曾看到令人满意的答案,为何呢?),我不信邪,非要想一想,于是有了下面的解法,不过我最后还是信邪了。确实我想不出时间复杂度O(N),空间复杂度O(1原创 2016-03-16 15:24:28 · 2912 阅读 · 0 评论 -
插入排序,选择,冒泡,快速排序算法及优化
一开始只想贴代码,但是后来发现还是有人看的。所以觉得还是有必要花点时间去写写。先定义一个用于交换两个数的函数吧。#if 0inline void swap(int& a, int& b){ int c = a; a = b; b = c;}#else//inline void swap(int& a, int& b){ if (a != b) { a =原创 2016-03-10 23:11:28 · 638 阅读 · 0 评论 -
关于两条链表交叉(交叉有环)的问题解决
大晚上睡不着,脑海里忽然出现关于链表的问题,可能是我晚上思考会比较冷静,不那么浮躁的原因,所以想到一些解决方法。一、关于链表交叉两条链表有交叉,最后会走到一起,如下面的丑图:问题1,如何判断两条链表是否有交叉?方法1、最简单粗暴的方法当然是遍历第一条链表的的每个节点的时候,完整遍历第二条链表,看是否有节点相同。伪代码:while p1{while p2原创 2016-03-09 02:06:10 · 1222 阅读 · 0 评论 -
学习之旅-红黑树之插入新节点
关于红黑树的帖子不可谓不多。一开始我看的是july的帖子(链接:http://blog.youkuaiyun.com/v_JULY_v/article/details/6105630),但是删除的时候他这系列说的不是很明白。也可以看维基百科上对于红黑树的说明,说的很清楚,但是全是英文的。。。 这里主要讲讲我自己的理解,以我自己学习红黑树的经历来说的。红黑树就是查找二叉树的一种,因为一般原创 2016-03-23 15:48:06 · 1772 阅读 · 1 评论 -
学习之旅-红黑树之删除
前人栽树,后人乘凉。关于这样红黑树的帖子已经很多。我就不再重复造轮子了。我自己发现一个删除说的很好的博客,链接:http://gengning938.blog.163.com/blog/static/1282253812011420103852696/我只是说说自己的理解。方便以后自己回来忘了的时候回来看能很快看懂。分为几种情况:1、删除的是叶子节点。那么,如果是红色,直接原创 2016-03-25 22:47:53 · 754 阅读 · 0 评论