快速排序是在实践中最快的已知排序算法,它的平均运行时间是O(NlogN),该算法之所以特别的快,主要是由于非常精炼和高度优化的内部循环。它的最坏情形的性能为N^2.
快速排序由下列简单的四步组成:
1.如果S中元素个数是0或1,则返回。
2.取S中任以元素V,称之为枢纽元
3.将S分成俩个不相交的集合,前一个元素都小于V,后一个元素都大于V。
4.返回quicksort(S1)后,加上V...
分类:
编程语言 时间:
2015-08-09 12:37:39
阅读次数:
165
概述:
本方法定义了一种数据结构,可用于描述任意的树形二进制协议,并配合一个特定的处理算法,可实现一种通用的,由该种树形二进制协议定义的比特流解析与填充的处理,该数据结构的定义如下:
/* 以下结构用于定义一个协议节点的描述信息。 */
struct _proto_info;
typedef struct _proto_des {
const char * ...
分类:
编程语言 时间:
2015-08-09 07:16:31
阅读次数:
221
/**
* 功能:有些数的素数因子只有3、5、7,找出其中第k个数。
*/
两种方法:
方法一:
/**
* 思路:将列表中的数字与3,5,7相乘,找出还未加入列表的最小数。
* 每次要将Ai加入列表时,就用某个临时列表存放3Ai,5Ai和7Ai。要产生Ai+1时,搜索临时列表,找出最小值。
* @param k
* @return
*/
public ...
分类:
其他好文 时间:
2015-08-08 15:04:51
阅读次数:
290
/**
* 功能:检查n能否被素数整除。
*/
/**
* 生成素数序列:埃拉托斯特尼筛法
* 原理:剔除所有可能被素数整除的非素数。
* 思路:列出到max为止的所有数字。
* 1)划掉所有可能被2整除的数(2保留)。
* 2)找到下一个素数(即下一个不会被划掉的数),并划掉所有可被它整除的数。
* 3)最终得到2到max之间的素数序列。...
分类:
其他好文 时间:
2015-08-08 15:04:30
阅读次数:
102
/**
* 功能:在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。
* 假定正方形的上下两条边与x轴平行。
*/
/**
* 考虑:
* 线的准确含义,可能性有:
* 1)由斜率和y轴截距确定;
* 2)由这条边上的任意两点确定;
* 3)线段,以正方形的边作为起点和终点。
*
* 假设:这条线的端点应该落在正方形的边上。
* 思路...
分类:
其他好文 时间:
2015-08-07 20:12:15
阅读次数:
117
重要的不是你用什么开发,而是你在开发什么。程序=算法+数据结构过程=对象+属性+方法+事件程序员的秘诀是:编程、编程、再编程。编程的秘诀是:思索、思索、再思索。自由固不是钱所能买到的,但能够为编程而卖掉。编程为了生活,生活为了编程。不要认为编程是一项任务,其实是一次让人羡慕的机会!编程之乐何处寻,数...
分类:
编程语言 时间:
2015-08-07 09:32:13
阅读次数:
145
题目链接:http://poj.org/problem?id=2524
这道题属于并查集
题目大意:
在一个学校内调查学生的信仰情况,告诉你学校有n个人,给你共m组x,y表示信教情况相同,问一个学校学生信仰的宗教的最大种数
这也是一道模板题,没啥说的,我在另一篇文章里面讲过模板题的做法,大家可以参考下。http://blog.csdn.net/xdz78/artic...
分类:
其他好文 时间:
2015-08-05 18:21:33
阅读次数:
93
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3183
RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j
ST(实质是动态规划),O(nlogn)-O(q) online。
ST算法(Sparse Table),以求最大值为例,设d[i,j]表示[i,i+...
分类:
其他好文 时间:
2015-08-04 11:14:23
阅读次数:
122
Two elements of a binary search tree (BST) are swapped by mistake.
Recover the tree without changing its structure.
Note:
A solution using O(n) space is pretty straight forward. Could you devise a ...
分类:
其他好文 时间:
2015-08-01 11:34:59
阅读次数:
108
十大算法之广度优先遍历:
本文以实例形式讲述了基于Java的图的广度优先遍历算法实现方法,具体方法如下:
用邻接矩阵存储图方法:
1.确定图的顶点个数和边的个数
2.输入顶点信息存储在一维数组vet中
3.初始化邻接矩阵;
4.依次输入每条边存储在邻接矩阵array中
输入边依附的两个顶点的序号i,j;
将邻接矩阵的第i行第j列的元素值置为1;
将邻接矩阵的第...
分类:
编程语言 时间:
2015-07-30 13:33:46
阅读次数:
212