
数据结构和算法
Coder_Suo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
奇偶排序
/* * 2014-6-15 21:58:27 * 维基百科 * * 该算法中,通过比较数组中相邻的(奇-偶)位置数字对,如果该奇偶对是错误的顺序(第一个大于第二个),则交换。 * 下一步重复该操作,但针对所有的(偶-奇)位置数字对。如此交替进行下去。 * * */ #include #include using namespace std; void bxy(in原创 2014-06-18 16:23:31 · 606 阅读 · 0 评论 -
二叉树的非递归遍历
啥也不说了,直接走链接, http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html转载 2013-11-01 16:56:12 · 623 阅读 · 0 评论 -
双向循环链表的创建修改插入删除操作
#include #include #define N 3 /*定义链表的长度*/ #define NULL 0 int m=N; struct stu /*定义一个结构体变量*/ { int num; char name[20]; struct stu *before; struct stu *next; }; /*主函数*/ void main() { struct原创 2014-08-03 18:40:15 · 948 阅读 · 0 评论 -
小米2013-朋友圈
题目描述: 假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。 假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3} , {4 , 5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1、2、3属于一个朋友圈,4、5属于另一个原创 2014-08-09 21:50:10 · 660 阅读 · 0 评论 -
Trie树学习
学习链接: 1.转载 2014-08-13 11:08:12 · 605 阅读 · 0 评论 -
看完后对函数指针有个重新认识
转载bihttp://www.chinaunix.net 作者:scutan 发表于:2008-06-22 18:20:51转载 2014-04-15 15:06:13 · 505 阅读 · 0 评论 -
分支界限法(剪枝法)学习
分支限界法与回溯法 (1)求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。 (2)搜索方式的不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。 分支限界法的基本思想 分支限界法常以广度优先或以最小耗费(最大效益)转载 2014-08-14 10:28:03 · 8115 阅读 · 0 评论 -
《大话数据结构》图的BFS和DFS
#include #include using namespace std; typedef char VertexType; /* 顶点类型应由用户定义 */ typedef int EdgeType; /* 边上的权值类型应由用户定义 */ #define MAXSIZE 9 /* 存储空间初始分配量 */ #define MAXEDGE 15 #define MAXVEX 9转载 2014-06-23 10:02:01 · 716 阅读 · 0 评论 -
启发式A*算法的整理
1. 入门文章,这个找了很久,转载 2014-08-12 10:32:40 · 883 阅读 · 0 评论 -
无序数组中最长连续序列
http://stackoverflow.com/questions/7453248/longest-consecutive-sequence-in-an-unsorted-array转载 2014-07-31 20:25:37 · 1631 阅读 · 0 评论 -
华为编程大赛——求表达式的值
题目:给出一个表达式,如原创 2014-07-22 21:29:57 · 625 阅读 · 0 评论 -
基数排序
/* * * 基数排序:先从最低位开始排序,逐步向高位排序。 * 优点:没有比较操作,所以很快。 * */ /* 对于 a[9]={19,38,37,36,64,54,82,92,72} 若从低位向高位逐步排列可以有效减少空间开销。 1)排序个位数字,得到:a[]={82,92,72,64,54,36,37,38,19}; 2)排序十位数字,得到:a[]={19,36,37,原创 2014-06-18 16:36:10 · 530 阅读 · 0 评论 -
归并排序
/*============================================================================= # # 维基百科上有 # FileName: merge_sort_in_c.c # Desc: 归并排序 # 2014-6-12 14:34:50 # ===========================原创 2014-06-18 16:30:19 · 620 阅读 · 0 评论 -
堆排序
/* * * 堆排序:对简单选择排序的一种改进 * ①堆是完全二叉树; ②有大顶堆与小顶堆之分 * * 注意是从1号位开始,放入数据并调整,则i节点的左孩子是2*i,右孩子是2*i+1; * * */ #include #include//algorithm using namespace std; void HeapAdjust(int *a,int i,int size原创 2014-06-18 16:31:34 · 543 阅读 · 0 评论 -
快速排序
#include using namespace std; void quick_sort(int a[],int left,int right){ //终止条件——————————————————————————————————1 if(left>=right) return ; //关键代码——————————————————————————————————2 int原创 2014-06-18 16:34:10 · 464 阅读 · 0 评论 -
希尔排序
/* * * 希尔排序是改进的插入排序 * 在子序列内部进行一般排序,等子序列都排序号以后,整个序列将基本有序 * * */ #include using namespace std; void Display(int array[],int length); void ShellSort(int array[],int length); int main(int argc原创 2014-06-18 16:27:37 · 496 阅读 · 0 评论 -
计数排序
/* # 2014-6-13 09:54:11 优点:稳定 当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。 计数排序不是比较排序,排序的速度快于任何比较排序算法。 计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序排序人名。 缺点:需要知道数据大小的范围scale # */ #include using namespace原创 2014-06-18 16:32:59 · 456 阅读 · 0 评论 -
《大话数据结构》最小生成树——Kruskal算法
/* 2014-6-24 思想:n个节点的图中,只需要找到权值最小且不与现有边集合构成环的(n-1)条边,必成最小生成树。 方案:将边的权值进行筛选,每次找到权值最小的边,补充道边集合中即可。 难点:如何确保这些边不构成环——对每个边,让其起始节点是祖先,通过洄游寻根,如果祖先相同说明两个节点是“近亲”,会构成闭环: A-B-C-A三角形中: 1. A-B边中确定B的祖先和父亲都是原创 2014-06-24 20:49:06 · 665 阅读 · 0 评论 -
《大话数据结构》最小生成树——Prim算法
/* 2014-6-24 思想:将点集合分为两部分,U代表已经确定的节点集合,V表示还未确定的点集合 从U中找到节点i,从V中找到节点j,使得(i-j)边的距离为min(U-V)——类似于贪心算法。 难点:确定一个节点将从V阵营叛变到U时,应该更新V阵营中节点与新集合U'(包含了叛变节点k后)的距离。 理解:策反一个敌人时,则敌对阵营中和该敌人关系紧密的节点与我方的关原创 2014-06-24 20:47:27 · 550 阅读 · 0 评论 -
二叉树的递归+非递归遍历
/* * 二叉树的遍历* 2011.8.25 * 作者:海子 * 出处:http://www.cnblogs.com/dolphin0520/ */ /*二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。 对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义, 因此采用递归的方法去实现树转载 2014-06-20 17:04:51 · 466 阅读 · 0 评论 -
图的最短路径Dijkstra+Floyed算法
/* * 2014-5-22 * 摘自http://blog.youkuaiyun.com/jnu_simba/article/details/8871794 * */ #include using namespace std; #define MAXEDGE 20 #define MAXVEX 20 #define INFINITY 65535 typedef struct { int原创 2014-06-20 17:08:24 · 720 阅读 · 0 评论