![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
道亦有道
文章平均质量分 68
jiaola
这个作者很懒,什么都没留下…
展开
-
算法一:插入排序
#include using namespace std;void InsertionSort(int A[],int len){ int i,j; for(i=1;i j=i-1; int t=A[i]; while(j>=0&&A[j]>t){ A[j+1]=A[j]; j--; } A[j+1]=t; }}void原创 2012-05-29 18:33:42 · 212 阅读 · 0 评论 -
Shell排序
#include using namespace std;void ShellSort(int A[],int len){ int gap=5; int i; int j; for(gap=5;gap>=1;gap-=2){ for(i=gap;i j=i-gap; int t=A[i]; while(j>=0&&A[j]>t){原创 2012-05-29 21:04:13 · 182 阅读 · 0 评论 -
快速排序
#include using namespace std;int QuickSortPass(int A[],int i,int j){ int t=A[j]; while(i while(i i++; } A[j]=A[i]; while(i=t){ j--; } A[i]=A[j]; } A[j]=t; retur原创 2012-05-30 12:11:54 · 220 阅读 · 0 评论 -
选择排序
#include using namespace std;void SelectSort(int A[],int len){ int i,j; int max,point; for(i=len-1;i>0;i--){ max=A[0]; point=0; for(j=1;j if(max max=A[j]; point=j;原创 2012-05-30 12:36:01 · 219 阅读 · 0 评论 -
堆排序
堆排序定义:k表示相应序列,i表示相应的下标k(i)算法分析:其实给定一个序列,那么相应我们逻辑上就可以就其理解为满二叉树.1.将对应序列组织成满二叉树2.逐步满足二叉树中的堆定义!提示:在逐步满足二叉树堆条件定义过程中,我们要做的就是利用二叉树的性质,将其子树一步步满足二叉树的堆的定义,那么最终整棵树也会满足相应堆的定义! 半天努力哈,堆排序终于出炉了:原创 2012-06-01 15:45:38 · 345 阅读 · 0 评论 -
归并排序
算法分析:归并排序的思想其实也是将大问题分解成很多小问题在此例中可以建一个序列分成若干个小序列,然后进行排序,排序之后再合并!如有n个记录,我们可以讲n个记录的每一个记录看成为一个队列,拥有n个队列,我们又可以将相邻的排序之后合并,那么我们就拥有了n/2个队列,每个队列最多2个元素,那么这样下去,我们最后就可以将其组成一个有序队列! 代码实现:void Merge(in原创 2012-06-01 20:23:48 · 217 阅读 · 0 评论 -
字符串模式匹配
#include "iostream"using namespace std;void BF_Match(char S[],int sLen,char T[],int tLen){ int mark=sLen-tLen+1; int start=0; bool sign=true; if(sLen return; while(start for(int i=原创 2012-06-02 17:15:35 · 216 阅读 · 0 评论 -
二分法排序
算法思想:对于要插入的节点,我们采用二分法和已排序队列进行比较(就是和队列中间的那个数比较大小,判断插入节点的位置是在该节点的前面还是后面),那么这样的话相对于直接插入来说,比较次数就会减少很多,但是当找到了需要插入点的位置的时候,那么移动的次数和直接插入排序相当!总体来说,略优于直接插入排序!void BinarySort(int A[],int len){ int i,first,原创 2012-06-01 12:42:42 · 4189 阅读 · 0 评论 -
吾观之一
如若说,程式如苍天大树,那么算法即为之魂,语言即为之根,框架为之枝,吾等岂可抛其魂,悟其枝叶,不得真道也!原创 2012-05-25 12:52:01 · 324 阅读 · 0 评论