基于visual Studio2013解决面试题之1405归并排序

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               



题目



解决代码及点评

  1.   
  1.   
  1. <code class="language-cpp">/* 
  2.     归并排序 
  3. */  
  4.   
  5. #include <iostream>  
  6.   
  7. using namespace std;  
  8.   
  9. const int N=10;  
  10. int anthor[N];  
  11. void MergeSort(int *array,int begin,int end)  
  12. {  
  13.     if(end-begin>1)  
  14.     {  
  15.         //  
  16.         MergeSort(array,begin,(begin+end)/2);  
  17.         MergeSort(array,(begin+end)/2+1,end);  
  18.   
  19.         int i=begin;  
  20.         int j=(begin+end)/2+1;  
  21.         int k=begin;  
  22.   
  23.         while (i<=(begin+end)/2&&j<=end)//合并时,把一个串全部并入另一个串放在一个新串,剩下的直接放在尾部  
  24.         {  
  25.             if(array[i]>array[j])        //小的值进入,并将索引后移  
  26.                 anthor[k++]=array[j++];  
  27.             if(array[i]<array[j])  
  28.                 anthor[k++]=array[i++];  
  29.   
  30.         }  
  31.         while (i<=(begin+end)/2)  
  32.         {  
  33.             anthor[k++]=array[i++];  
  34.         }  
  35.         while(j<=end)  
  36.         {  
  37.             anthor[k++]=array[j++];  
  38.         }  
  39.   
  40.         for(k=begin;k<=end;k++)    //排序好重新拷贝回数组  
  41.             array[k]=anthor[k];  
  42.   
  43.     }  
  44.     else      //相邻则直接交换  
  45.     {  
  46.         if(array[end]<array[begin])  
  47.         {  
  48.             int temp=array[end];  
  49.             array[end]=array[begin];  
  50.             array[begin]=temp;  
  51.         }  
  52.     }  
  53. }  
  54.   
  55.   
  56. int main()  
  57. {  
  58.   
  59.   
  60.     int array[N];  
  61.     for(int i=0;i<10;i++)  
  62.     {  
  63.         array[i]=rand()%100;  
  64.         cout<<array[i]<<" ";  
  65.     }  
  66.   
  67.     MergeSort(array,0,N-1);  
  68.     cout<<endl;  
  69.     for(int i=0;i<10;i++)  
  70.     {  
  71.   
  72.         cout<<array[i]<<" ";  
  73.     }  
  74.     system("pause");  
  75.     return 0;  
  76. }  
  77.   
  78. </code>  
/* 归并排序*/#include <iostream>using namespace std;const int N=10;int anthor[N];void MergeSort(int *array,int begin,int end)if(end-begin>1) {  //  MergeSort(array,begin,(begin+end)/2);  MergeSort(array,(begin+end)/2+1,end);  int i=begin;  int j=(begin+end)/2+1;  int k=begin;  while (i<=(begin+end)/2&&j<=end)//合并时,把一个串全部并入另一个串放在一个新串,剩下的直接放在尾部  {   if(array[i]>array[j])        //小的值进入,并将索引后移    anthor[k++]=array[j++];   if(array[i]<array[j])    anthor[k++]=array[i++];  }  while (i<=(begin+end)/2)  {   anthor[k++]=array[i++];  }  while(j<=end)  {   anthor[k++]=array[j++];  }  for(k=begin;k<=end;k++)    //排序好重新拷贝回数组   array[k]=anthor[k]; } else      //相邻则直接交换 {  if(array[end]<array[begin])  {   int temp=array[end];   array[end]=array[begin];   array[begin]=temp;  } }}int main()int array[N]; for(int i=0;i<10;i++) {  array[i]=rand()%100;  cout<<array[i]<<" "; } MergeSort(array,0,N-1); cout<<endlfor(int i=0;i<10;i++) {  cout<<array[i]<<" "; } system("pause"); return 0;}

代码下载及其运行

代码下载地址:http://download.csdn.net/detail/yincheng01/6704519

解压密码:c.itcast.cn


下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:

扫描二维码关注公众号,回复: 4042215 查看本文章

1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”


2)在下拉框中选择相应项目,项目名和博客编号一致

3)点击“本地Windows调试器”运行


程序运行结果








           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/fdgugfv/article/details/83989421