
algorithm
jiht594
这个作者很懒,什么都没留下…
展开
-
希尔排序
2.SHELL排序这个排序非常复杂,看了程序就知道了。首先需要一个递减的步长,这里我们使用的是9、5、3、1(最后的步长必须是1)。工作原理是首先对相隔9-1个元素的所有内容排序,然后再使用同样的方法对相隔5-1个元素的排序以次类推。#include void ShellSort(int* pData,int Count){ int step[4];转载 2011-11-02 09:13:47 · 461 阅读 · 0 评论 -
全排列
1.STL库中的库中的库中的库中的next_permutation()函数函数函数函数字典序:存在相同元素,不会重复。#include #include #include using namespace std; int main(){ string str; cin >> str; sort(str.begin(), str.e转载 2012-10-03 20:12:42 · 765 阅读 · 0 评论 -
常用加密算法比较
对称加密算法(加解密密钥相同)名称密钥长度运算速度安全性资源消耗DES56位较快低中3DES112位或168位慢中高AES128、192、256位快转载 2011-11-09 22:21:41 · 19253 阅读 · 0 评论 -
交换排序
2.交换法:交换法的程序最清晰简单,每次用当前的元素一一的同其后的元素比较并交换。#include void ExchangeSort(int* pData,int Count){ int iTemp; for(int i=0;i { for(int j=i+1;j { if(pData[j转载 2011-11-02 08:48:54 · 455 阅读 · 0 评论 -
动态规划
概述动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间。动态规划只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近转载 2011-11-03 08:55:53 · 810 阅读 · 0 评论 -
二分查找
/* 二分查找* 算法思想:1、将数组排序(从小到大);2、每次跟中间的数mid比较,如果相等可以直接返回, * 如果比mid大则继续查找大的一边,否则继续查找小的一边。 输入:排序好的数组 - sSource[],数组大小 - array_size,查找的值 - key 返回:找到返回相应的位置,否则返回-1 */ int BinSearch(int sSource[转载 2011-11-02 11:15:07 · 407 阅读 · 0 评论 -
二叉查找树
挖坑转载 2011-11-02 09:40:25 · 350 阅读 · 0 评论 -
快速排序
快速排序:#include void run(int* pData,int left,int right){ int i,j; int middle,iTemp; i = left; j = right; middle = pData[(left+right)/2]; //求中间值 do{ whil转载 2011-11-02 09:12:15 · 375 阅读 · 0 评论 -
插入排序
插入排序#include using namespace std;void coutstream(int a[],int n){ for(int i=0;i!=n;i++) cout}void insertsort(int a[],int n){int temp; for(int i=1;i{ int j=转载 2011-11-02 09:11:35 · 393 阅读 · 0 评论 -
冒泡排序
1.冒泡法:这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:#include void BubbleSort(int* pData,int Count){ int iTemp; for(int i=1;i { for(int j=Count-1;j>=i;j--) {转载 2011-11-02 08:46:05 · 424 阅读 · 0 评论 -
哈希表实现
坑转载 2011-11-02 09:42:48 · 487 阅读 · 0 评论 -
红黑树的实现源码
貌似网上没找到正确的实现有时间写一个转载 2011-11-02 09:25:28 · 409 阅读 · 0 评论 -
选择排序
3.选择法:现在我们终于可以看到一点希望:选择法,这种方法提高了一点性能(某些情况下)这种方法类似我们人为的排序习惯:从数据中选择最小的同第一个值交换,在从省下的部分中选择最小的与第二个交换,这样往复下去。#include void SelectSort(int* pData,int Count){ int iTemp; int iPos转载 2011-11-02 09:10:50 · 368 阅读 · 0 评论 -
C++栈的实现
2009-04-15 11:40顺序栈(seqential stack)就是用顺序存储方式存储的栈。在下面顺序栈的类定义中是用数组存储的。用stacka[maxsize]存储,maxsize是最大允许存放元素的个数。变量top表示栈顶部元素的位置,初始值为-1,表示栈空. 我们首先给出顺序栈的抽象数据类型的描述,然后给出顺序栈的类定义与实现。下面是顺序栈的抽象数据类型的描述。转载 2011-11-02 09:21:34 · 671 阅读 · 0 评论 -
子串出现的个数
//统计substr在str中的个数int fun(char *str,char *substr){ int n=0; char *p, *q; p = str; q = substr; while(*str!='\0') { if(*str==*substr) { s原创 2011-11-02 09:17:16 · 849 阅读 · 4 评论