基於visual Studio2013解決面試題之1405歸併排序
阿新 • • 發佈:2018-11-12
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
題目
解決程式碼及點評
[cpp]
view plain
copy
print
[cpp]
view plain
copy
print
?
[cpp]
view plain
copy
print
?
- <code class="language-cpp">/*
- 歸併排序
- */
- #include <iostream>
- using namespace std;
- const int N=10;
- int anthor[N];
- void MergeSort(int *array,int begin,
- {
- 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;
- }
- </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<<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偵錯程式”執行
程式執行結果