zoukankan      html  css  js  c++  java
  • 排序 归并排序&逆序对

    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])
             {
                 temp[k]=cry[i];
                 i++;
             }
             else
             {
                 std::cout<<"["<<i<<","<<j<<"]:"<<cry[i]<<" "<<cry[j]<<endl;
                 temp[k]=cry[j];
                 j++;
             }
             k++;
        }
        while(i<=middle)
        { temp[k]=cry[i];
            i++;
            k++;
        }
        while(j<=end)
        {
            temp[k]=cry[j];
            k++;
            j++;
        }
        for(int m=begin;m<=end;++m)
            cry[m]=temp[m];
    }
    void Merge(int cry[],int temp[] ,int begin,int end)
    {
        if(begin<end)
        {
            int middle=(begin+end)/2;
            Merge(cry,temp,begin,middle);
            Merge(cry,temp,middle+1,end);
            MergeArray(cry,temp,begin,middle,end);
        }
    }
    void MergeSort(int cry[],int N)
    {
       int* temp=new int[N]();
       Merge(cry,temp,0,N-1);
       delete[]temp;
    }
    
    学习技术不只是为养家糊口,也为夜深人静的时候能够一个人静静享受这其中的乐趣。
  • 相关阅读:
    c++ vector容器的使用,序列倒叙reverse(),容器底部插入一个数值push_back()
    vs2015+opencv-3.2.0-vc14配置
    串的匹配算法--C语言实现
    顺序队列与链式队列--C语言实现
    链式栈-C语言实现
    顺序栈与两栈共享空间-C语言实现
    静态链表-C语言实现
    循环双向链表-C语言实现
    链表-C语言实现
    顺序表-C语言实现
  • 原文地址:https://www.cnblogs.com/renxs/p/3161816.html
Copyright © 2011-2022 走看看