合并、快速排序算法.doc

合并、快速排序算法.doc

ID:55689010

大小:27.00 KB

页数:5页

时间:2020-05-24

合并、快速排序算法.doc_第1页
合并、快速排序算法.doc_第2页
合并、快速排序算法.doc_第3页
合并、快速排序算法.doc_第4页
合并、快速排序算法.doc_第5页
资源描述:

《合并、快速排序算法.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、快速排序算法1.#include  2.int a[101],n;//定义全局变量,这两个变量需要在子函数中使用 3.void quicksort(int left,int right) 4.{ 5.    int i,j,t,temp; 6.    if(left>right) 7.       return; 8.                                9.    temp=a[left]; //temp中存的就是基准数 10.    i=left; 11.    j=right; 12.    while(i!=j) 13. 

2、   { 14.                   //顺序很重要,要先从右边开始找 15.                   while(a[j]>=temp && i

3、         if(i

4、quicksort(left,i-1);//继续处理左边的,这里是一个递归的过程 33.    quicksort(i+1,right);//继续处理右边的 ,这里是一个递归的过程 34.} 35.int main() 36.{ 37.    int i,j,t; 38.    //读入数据 39.    scanf("%d",&n); 40.    for(i=1;i<=n;i++) 41.                   scanf("%d",&a[i]); 42.    quicksort(1,n); //快速排序调用 1.                    

5、         2.    //输出排序后的结果 3.    for(i=1;i<=n;i++) 4.        printf("%d ",a[i]); 5.    getchar();getchar(); 6.    return 0; 7.} 合并排序(递归)#include//调用setw#include//将b[0]至b[right-left+1]拷贝到a[left]至a[right]templatevoidCopy(Ta[],Tb[],intleft,intright){intsize=right

6、-left+1;for(inti=0;ivoidMerge(Ta[],Tb[],intleft,inti,intright){inta1cout=left,//指向第一个数组开头a1end=i,//指向第一个数组结尾a2cout=i+1,//指向第二个数组开头a2end=right,//指向第二个数组结尾bcout=0;//指向b中的元素for(intj=0;j

7、right-left+1次循环{if(a1cout>a1end){b[bcout++]=a[a2cout++];continue;}//如果第一个数组结束,拷贝第二个数组的元素到bif(a2cout>a2end){b[bcout++]=a[a1cout++];continue;}//如果第二个数组结束,拷贝第一个数组的元素到bif(a[a1cout]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。