⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 归并排序.txt

📁 排序方法的比较
💻 TXT
字号:
/*归并排序:Mergesort.cpp*/

 

#include <iostream.h>

#include "stdio.h"

void inssort1(int A[],int n);

int time2=0;//时间复杂度

extern int time1;

void sort();

void mergesort(int A[],int temp[],int left,int right)

{     if((right-left)<=32)

       {

              inssort1(&A[left],right-left+1);//对于较小的数组,调用内排序

              return;

       }

       int i,j,k,mid=(left+right)/2;

       if(left==right) return;

       mergesort(A,temp,left,mid);

       mergesort(A,temp,mid+1,right);

       for(i=mid;i>=left;i--)

       {

              temp[i]=A[i];

              time2++;

       }

       for(j=1;j<right-mid;j++)

       {

              temp[right-j+1]=A[j+mid];

              time2++;

       }

       for(i=left,j=right,k=left;k<=right;k++)

       {

              if(temp[i]<=temp[j])

              {

                     A[k]=temp[i++];

                     time2++;

              }

              else

              {

                     A[k]=temp[j--];

                     time2++;

              }

       }

 

 

}

 

void msort()

{

       int n,left,right;

       int time;

       int A[80];

       int B[80];

       int temp[80];

    cout <<"请输入元素个数:" <<endl;

           cin >>n;

       left=0;

       right=n-1;

       cout <<"请输入数组元素:" <<endl;

       for(int i=0;i<n;i++)

       {

              cin >>A[i];

       }

       for(int j=0;j<n;j++)

       {

              B[j]=A[j];

       }

       mergesort(A,temp,left,right);//进行归并排序

       cout <<"进行排序后的结果:" <<endl;

       for(int k=0;k<n;k++)

       {

              cout <<A[k] <<" ";

       }

       cout <<endl;

       time=time1+time2;

       cout <<"时间复杂度为: ";

       cout <<time <<endl;

       char answer;

       cout <<"是否要打印排序前的数组?(y/n)" <<endl;

       cin >>answer;

       if(answer=='y')

       {

              for(int ii=0;ii<n;ii++)

                     cout <<B[ii] <<" ";

       }

       cout <<endl;

       getchar();

       sort();

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -