<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[smarter_shability的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/smarter_shability</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; smarter_shability]]></copyright><item><title><![CDATA[用邻接链表存储无向图和有向图]]></title><link>https://blog.youkuaiyun.com/smarter_shability/article/details/69664921</link><guid>https://blog.youkuaiyun.com/smarter_shability/article/details/69664921</guid><author>smarter_shability</author><pubDate>Sat, 08 Apr 2017 09:48:44 +0800</pubDate><description><![CDATA[上一篇文章我们说到用邻接矩阵存储有向图和无向图，这种方法的有点是很直观的知道点与点之间的关系，查找的复杂度是为O（1）。但是这种存储方式同时存在着占用较多存储空间的问题，

邻接矩阵存储很好理解，但是，有时候太浪费空间了，特别是对于顶点数多，但是关联关系少的图。

举个极端的例子。

下图中，5个顶点都是孤立的，然而为了存储边的信息，要分配一个5X5的矩阵。本来一条边都没有，没必要用存]]></description><category></category></item><item><title><![CDATA[有向图和无向图用邻接矩阵储存]]></title><link>https://blog.youkuaiyun.com/smarter_shability/article/details/69664755</link><guid>https://blog.youkuaiyun.com/smarter_shability/article/details/69664755</guid><author>smarter_shability</author><pubDate>Sat, 08 Apr 2017 09:15:47 +0800</pubDate><description><![CDATA[一般存储图的方式有两种：一是用邻接矩阵表示，二是用邻接链表。
所谓用邻接矩阵，是用一个二维数组存储，边使用矩阵来构建模型，这使得每一个顶点和其它顶点之间都有边的有无 的 表示的机会。若有边，则他们交点 为1 ，否则为0。当然，如果是一副边有权值的图，交点存储的是他们边的权值。
1、首先收一下无向图的存储：


无向图的边的矩阵一定是一个对称矩阵，因为无向图只关心边是否存在，而不关心方向，]]></description><category></category></item><item><title><![CDATA[二维数组中查找问题]]></title><link>https://blog.youkuaiyun.com/smarter_shability/article/details/62041056</link><guid>https://blog.youkuaiyun.com/smarter_shability/article/details/62041056</guid><author>smarter_shability</author><pubDate>Tue, 14 Mar 2017 12:42:57 +0800</pubDate><description><![CDATA[给定一个M*N的二维数组，在每行、或者每列上的元素都是按升序排列的（从小到大），既：matrix[i][j]
要求设计一个算法，在矩阵中查找是否存在给定的值（target）
因为这是一个每行每列的矩阵，我们很快就想到可以对每一行或者每一列进行二分查找，看target是否存在于二维数组中，对M*N二维矩阵，
此算法复杂度为O（M*logN），很容易写出以下代码：
#include 
#inc]]></description><category></category></item><item><title><![CDATA[最大子序列求解及分治算法的一些例子]]></title><link>https://blog.youkuaiyun.com/smarter_shability/article/details/60754656</link><guid>https://blog.youkuaiyun.com/smarter_shability/article/details/60754656</guid><author>smarter_shability</author><pubDate>Tue, 07 Mar 2017 10:27:05 +0800</pubDate><description><![CDATA[题目大概意思是：在一个乱序的数列中，找出其相加之和最大的子列。例如在[-2,1,-3,4,-1,2,1,-5,4]子列为[4,-1,2,1]有最大和为6。
我的解题思路就是做一个历遍，首先从数列第一位与后面的各个位相加，一直加到末尾，找出第一位数中最大和子列的最后一位数；然后再从第二位数往后加起来，以此类推。找到数组中的某一位数相加到它之后的某位数为最大。#include 
using name]]></description><category></category></item><item><title><![CDATA[Find the disappear numbers in a array]]></title><link>https://blog.youkuaiyun.com/smarter_shability/article/details/57083333</link><guid>https://blog.youkuaiyun.com/smarter_shability/article/details/57083333</guid><author>smarter_shability</author><pubDate>Sat, 25 Feb 2017 15:52:06 +0800</pubDate><description><![CDATA[这个问题意思是 从1到n（n为数组中的最大项）中找出数组中不包含的数。
我的思路是用数组中含有的数如a，将数值第a位既array【a】变为负数，那么数组经过变换后，哪一位的数还是正数，那么该位的下标加一就是不在数组中的。
如 4 2 2 3 8 7 3 1 
变换后是 -4 -2 -2 -3 8 7 -3 -1
这第五位和第六位（下标分别是4 、5）为正，那么5、6就不存在改数组中。
#]]></description><category></category></item></channel></rss>