自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 汉诺塔问题的解决思路及算法

关于汉诺塔问题,好多时候当时理解了过段时间可能又会忘,其实这个代码很简单,主要还是分治思想理解不够透彻。架设3根柱子分别为A、B、C,圆盘数目为n。1:如果A有一个圆盘,则直接移动至c。2:如果A有2个圆盘,则A->B,A->C,B->C。好了这个时候已经可以解决问题了,结束条件为 n==1;假设当我们在数目为n-1的时候已经解决了移动问题可以成功移动至C,如果又多了一个呢,即

2017-12-31 21:25:27 19913

原创 floyd算法求多源最短路径

关于floyd三重循环的问题可能有人有疑问:为什么k要放在在外层循环,这个牵扯到动态规划的问题,状态转移方程为dist[k][a][b] = min(dist[k-1][a][k] + dist[k-1][k][b] , dist[k-1][a][b]),当多使用了一个中间节点k来更新ab间距离的时候,需要知道k-1的时候对应的所有的ab间距,才能推导出新增k节点之后的所有ab间距,所以要把k=1

2017-12-30 22:27:56 206

原创 图的存储(邻接表)创建与深度优先、广度优先搜索

#pragma once#include#includeusing namespace std;#define Vnum 10typedef int DATA;/*邻接表存储图*/typedef struct list //存储链表的结构{ int weight; //边 int index; //顶点数组的索引 struct list *nextList; //链表的

2017-12-30 20:22:01 880

原创 二叉树的存储,创建,以及四种遍历,删除

#include ;#include ;using namespace std;typedef char DATA;typedef struct BitTree{ DATA data; BitTree *lChild, *rChild;}BitTree, *BitNode;class CBitTree{public: BitTree* node; CBitTree()

2017-12-28 14:11:39 226

原创 归并排序算法理解

归并排序算法的思想:把一个序列拆分成一对序列,每个序列再次拆分,这样经过多次拆分,拆分成多个小序列,每个序列有2个以内的元素然后排序,再逐次把1对有序序列合并为一个有序序列,最后合并为一个完整的有序序列。void merge(int *data,int startIndex,int endIndex);void mergeSort(int *data,int startIndex,int

2017-12-27 13:59:57 200

原创 快速排序算法

快速排序算法的思想就是从数字序列中随便挑一个数,然后比跟剩余元素逐个比较,比它小的放在它的左边,比它大的放在它右边,然后这个数的位置就坐定了,然后分别取这个数左边的所有元素组成的新序列,还有右边的新序列,也就是左序列和右序列。用以上方法来递归实现。但是为了不浪费空间,总不能真的每个左序列和右序列都重新创建一个新的数组,可以通过记录原序列中的左序列右序列起始位置与结尾位置来实现,至于2个位置元素的交...

2017-12-27 12:56:09 116

原创 10进制转2进制问题

其实在计算机的逻辑里,只有2进制,10进制转2进制的意思是把计算机展示给我们的10进制(数字)转换为 2进制(字符串)。既然写转换,就写个优雅简洁的代码,号称史上最简(贱)。void ten2two(int num){ while(num) { cout<< (num & 1 ?1 : 0); num >>= 1; }}

2017-12-27 12:41:52 278

原创 关于矿泉水空瓶子和瓶盖兑换矿泉水的问题解决算法

问题大概描述:矿泉水1块钱1瓶,喝完以后,2个空瓶子可以换一瓶新矿泉水,4个瓶盖也可以换一瓶新矿泉水。问:花10块钱最后最多能得多少瓶矿泉水。钱不是问题,主要是考虑刚开始能买多少瓶矿泉水,这里是10瓶,既然写程序,就n瓶吧。大致思路如下:先把n个矿泉水全部拆分成空瓶和盖子,就是当前拥有的所有的空瓶和盖子。可以用while循环,结束条件是(经过一轮瓶子和瓶盖的兑换活动后)当前的兑换后

2017-12-27 12:08:57 6552

原创 dijkstra算法求单源最短路径

利用dijkstra算法求单源最短路径。

2017-12-26 18:52:19 451

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除