- 博客(15)
- 收藏
- 关注
原创 排序算法之快速排序<Quick_Sort>及其C语言代码实现
快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 (以上来自百度百科) 简单的说,就是将序列分为两个部分,首先从序列
2017-05-28 16:33:21 2344 1
原创 查找一个数组中第k小的数
时间复杂度O(n)#include <stdio.h>int SearchKth(int a[],int L,int R,int k){ int i=L,j=R; int pivot=a[i]; while(i<j) { while(i<j&&a[j]>=pivot) --j; a[i]=a[j]; while(i<
2017-05-28 15:51:05 783
原创 一些有趣的算法题收集-Category
目录 1. 查找一个数组中第k小的数 2. 移去链表倒数第n个节点-LeetCode 3. 合并两个有序链表,递归实现-LeetCode 4. 合并k个有序链表-LeetCode 5. 将有序单链表转化为平衡二叉树
2017-05-28 15:47:40 653
原创 二叉树前序、中序、后序递归遍历实现(C语言)
void preTreverse(struct BTree *T)//前序遍历{ if(T) { printf("%d ",T->data); Treverse(T->left); Treverse(T->right); }}void inTreverse(struct BTree *T)//中序遍历{ if(T
2017-05-27 18:15:22 1261 2
原创 二叉树前序、中序、后序非递归遍历实现(C语言)
一、非递归前序遍历void TreversePreorder(struct BTree *T){ struct BTree *stack[1000],*p=T;//建立栈 int top=0; while(p||top) { if(p) { printf("%d ",p->data);//第一次遇见时就访问
2017-05-27 17:58:33 12172 2
原创 求二叉树的高度
一、递归实现int Max(int a,int b)//a,b中的最大值{ return a>b?a:b;}int GetHeight(struct BTree *T){ if(!T) return 0;//递归出口 return Max(GetHeight(T->left),GetHeight(T->right))+1;//递归求出左子树和右子树的高度}
2017-05-27 17:32:52 506
原创 已知前序、中序,递归建立二叉树(C语言)
#include <stdio.h>#include <malloc.h>int pre[]={1,2,4,5,3,6,7};//前序序列int ino[]={4,2,5,1,6,3,7};//中序序列struct BTree{ struct BTree *left,*right; int data;};//树节点定义void BuildBTree(struct BTr
2017-05-27 17:21:30 3435 1
原创 A1091. 组合输出
A1091. 组合输出#include <iostream>#include <vector>using namespace std;int n,m,vis[20];vector<int> v;void Solve(int e,int lev){ vis[e]=1; v.push_back(e); if(lev==m) { for(vect
2017-05-14 23:00:39 316
原创 1111. Online Map (30)
1111. Online Map (30) 解题思路: Dijkstra储存最短路径,dfs找最优路径破题,呸(:з」∠) AC代码//简化了一下代码,2017.9.7#include <iostream>#include <cstdio>#include <vector>using namespace std;const int I...
2017-05-05 19:32:45 678
原创 hexo 写博客+部分常用markdown语法
执行$ hexo new "我的文章标题"会在source_posts目录下新建一个 我的文章标题.md 文件 找到这个文件,打开就可以进行编辑了(博主这里用的是sublime); 注意文档采用markdown语法,所以要会一点(很简单的),这里博主会更新一些常用的语法操作代码块/```这里放你的代码(就是三个点,注意去掉/)/```超链接[我的博客](http://blog.csdn.ne
2017-05-04 23:26:23 1109
原创 hexo sever端口占用,localhost:4000无响应
这种情况一般端口被占用,使用下面的命令更改端口号为5000 然后浏览器输入http://localhost:5000/$ hexo s -p 5000
2017-05-04 23:04:07 2681
原创 1131. Subway Map (30)
1131. Subway Map (30) 啊啊啊啊~,一开始提交一看,竟然1,4,5测试例都错了,还以为我算法错了,后面才发现,输出是四位啊,所以呢,一定要注意格式输出啊(printf大法好,逃~) 分析: 如果我们首先忽略地铁线的这条信息,那么,这里本身就是一张图,有n多个节点,要求就是给你两个节点,你要找到他们之间经过节点最少的路径,显然,利用dfs进行遍历是首先要想到的 那么,如何确
2017-05-04 17:41:04 2242
原创 1127. ZigZagging on a Tree (30)
1127. ZigZagging on a Tree (30) #include <iostream>#include <vector>using namespace std;const int maxv=42;int in[maxv],post[maxv],h=-1;vector<int> v[maxv];void Solve(int inL,...
2017-05-03 23:42:24 650
原创 1119. Pre- and Post-order Traversals (30)
1119. Pre- and Post-order Traversals (30) 对于前序和中序,或者后序和中序,可以唯一确定一棵二叉树,而对于前序和后序,可能不能唯一确定一棵二叉树,原因在于,前序和后序对于左右子树的划分可能是不确定的。并且这种不确定,只可能出现在具有单一子树的节点中,这是因为,建树过程中,将该子树放在左边,或者右边,都是可以的,因为这两种方式都将产生相同的前序和后序序列。因...
2017-05-03 20:11:25 343
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人