
题目
解决代码及点评
/* 归并排序 */ #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<<endl; for(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,并设置对应的启动项目后,点击运行即可,具体步骤如下:
1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”
2)在下拉框中选择相应项目,项目名和博客编号一致
3)点击“本地Windows调试器”运行
程序运行结果