• 归并排序


    注意和快排的区别啊!!!

    #include<stdlib.h>
    #include<stdio.h>

    void Merge(int sourceArr[],int tempArr[],int startIndex,int midIndex,int endIndex)
    {
    int i,j,k;
    for(i=midIndex+1,j=startIndex;startIndex<=midIndex&&i<=endIndex;j++)
    if(sourceArr[startIndex]<=sourceArr[i])
    tempArr[j]=sourceArr[startIndex++];
    else
    tempArr[j]=sourceArr[i++];
    if(startIndex<=midIndex)
    for(k=0;k<=midIndex-startIndex;k++)
    tempArr[j+k]=sourceArr[startIndex+k];
    if(i<=endIndex)
    for(k=0;k<=endIndex-i;k++)
    tempArr[j+k]=sourceArr[i+k];
    for(i=startIndex;i<=endIndex;i++)
    sourceArr[i]=tempArr[i];
    }

    //内部使用递归
    void MergeSort(int sourceArr[],int tempArr[],int startIndex,int endIndex)
    {
    int midIndex;
    if(startIndex<endIndex)
    {
    midIndex=(startIndex+endIndex)/2;
    MergeSort(sourceArr,tempArr,startIndex,midIndex);
    MergeSort(sourceArr,tempArr,midIndex+1,endIndex);
    Merge(sourceArr,tempArr,startIndex,midIndex,endIndex);
    }
    }

    //调用
    int main(/*int argc,char * argv[]*/)
    {
    int a[8]={50,10,20,30,70,40,80,60};
    int b[8],i;
    MergeSort(a,b,0,7);
    for(i=0;i<8;i++)
    printf("%d ",a[i]);
    printf(" ");
    //system("pause");
    return 0;
    }

  • 相关阅读:
    Exchange2016中搜索和删除邮件
    导出Wireless组中的成员
    安装一些常用的软件
    Exchange2016虚拟目录介绍
    css中的BFC
    git 代码强制回滚操作整理(线上线下一起)
    Qt线程Qthread
    python操作设备相关库
    python
    总结
  • 原文地址:https://www.cnblogs.com/SSYYGAM/p/4212458.html
Copyright © 2020-2023  润新知