随笔分类 - 数据结构与算法探寻
主要学习数据结构与算法,希望能留下一些东西..供自己查询或者帮助一下其他人
数组 反转
摘要:void Reverse(int cry[],int begin,int end){ while(begin<end) { cry[begin]= cry[begin]^cry[end]; cry[end]=cry[begin]^cry[end]; cry[begin]=cry[begin]^cry[end]; begin++...
阅读全文
排序 归并排序&逆序对
摘要:void MergeArray(int cry[],int temp[],int begin,int middle,int end){ int i=begin; int j=middle+1; int k=i; while(i<=middle&&j<=end) { if(cry[i]<=cry[j]) { tem...
阅读全文
快速寻找满足条件的2个数
摘要://快速寻找满足条件的2个数 int icy[]={1,2,3,4,5,6,7,8,9,10}; int i=0; int j=9; int key=11; while(ikey) { j--; } } //计算差为 key i=0; j=1; while(jkey) { i++; } else { j++; } }
阅读全文
数组 寻找最大的第k个数
摘要:int Partion(int asy[],int begin,int end){ int k=begin; int key=asy[end]; for(int i=begin;ikey) { int temp=asy[k]; asy[k]=asy[i]; asy[i]=temp; k++; } } int temp=asy[k]; asy[k]=asy[end]; asy[end]=temp; return k;}void Get...
阅读全文
字符串 删除字符串开始以及末尾的空白符,并把数组中间的多个空格(如果有)符转换为1个
摘要:void RemoveNullChar(){ char cry[]=" a bb45665 c d de r t 8 76 uu "; size_t N=sizeof(cry)/sizeof(char); int k=0; bool flag=false; for(int i=0;i<N;++i) { if(cry[i]!=' ') { if(k!=i) { cry[k]=cry[i]; cry[i]=' '; ...
阅读全文
排序 快速排序
摘要:int Partion(int asy[],int begin,int end){ int k=begin; int key=asy[end]; for(int i=begin;ikey) { int temp=asy[k]; asy[k]=asy[i]; asy[i]=temp; k++; } } int temp=asy[k]; asy[k]=asy[end]; asy[end]=temp; return k;}void Qui...
阅读全文
非比较排序算法———计数排序
摘要:计数排序、基数排序、桶排序 非比较排序算法,平均时间复杂度都是O(N).这些排序元素,因为其关键值本身就含有了定位特征,因而不需要比较就可以确定其前后位置。1、计数排序是一种简单的排序方法,将排序结果放到另一个的新的数组中。 计数排序要求 待排序的元素的关键值是位于0-k之间的正整数。因而是个非常特殊的情况。 输入数组A:元素关键值是 0-K的正整数,可以有重复值 输出数组B:输出数组A的一个非减序列 中间数组C:大小K,它的i(0<=i<=k)索引位置存储的是A元素集合和。 这里意思是:原始数组A元素变成了中间数组C下标。 void Sort(int array[],int n,
阅读全文
浙公网安备 33010602011771号