摘要: 问题:写一个程序,对于一个正整数,输出它所有可能的连续自然数(两个以上)之和的算式 分析: 设输入的数为N;拆分为k个数;拆分后连续数的第一个数为m。则有 N = m + (m+1) + (m+2) + …… + (m+k-1) = k*m + 1+2+3+……+(k-1) = ... 阅读全文
posted @ 2013-08-29 11:44 DKMP 阅读(764) 评论(0) 推荐(0) 编辑
摘要: 问题叙述: 将一个n元一维向量向左旋转i个位置。例如,当n=8且i=3时,"abcdefgh"旋转为"defghabc",要求时间为O(n),额外存储占用为O(1)。(《编程珠玑》第二章问题B)分析: 严格来说这并不是一个字符串,因为'\0'是不会移动的。为了叙述方便,可以把它认为是字符串,只是... 阅读全文
posted @ 2013-08-29 10:01 DKMP 阅读(663) 评论(0) 推荐(0) 编辑
摘要: 单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。 一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中... 阅读全文
posted @ 2013-08-28 19:11 DKMP 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。 1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key... 阅读全文
posted @ 2013-08-26 17:00 DKMP 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 简单的单链表逆置操作,图中黑色节点只能找到有颜色的节点、或通过箭头找到节点。#include#include typedef struct _Node{ struct _Node* next; int data;}Node;void Print(Node* cur){ for(;c... 阅读全文
posted @ 2013-08-26 11:44 DKMP 阅读(914) 评论(0) 推荐(0) 编辑
摘要: 首先来了解下一些概念性的东西。二分图: 二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图... 阅读全文
posted @ 2013-08-21 19:17 DKMP 阅读(5981) 评论(0) 推荐(1) 编辑