(排序回顾)归并排序
Posted 年糕君の勉强笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(排序回顾)归并排序相关的知识,希望对你有一定的参考价值。
#include <iostream> using namespace std; int a[10]; int temp[10]; void mergeArray(int left,int right,int mid){ int i = left; int j = mid + 1; int k = 0; while( i <= mid && j <= right) { if(a[i] < a[j]){ temp[k++] = a[i++]; } else { temp[k++] = a[j++]; } } while( i<=mid ){ temp[k++] = a[i++]; } while( j<=right ){ temp[k++] = a[j++]; } k = 0; while(left <= right ){ a[left++] = temp[k++]; } } void mergeSort(int left,int right){ if(left < right){ int mid = (left+right)/2; mergeSort(left,mid); mergeSort(mid+1,right); mergeArray(left,right,mid); } } int main() { int n; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } mergeSort(0,n-1); for(int i=0;i<n;i++){ cout<<a[i]<<endl; } return 0; }
以上是关于(排序回顾)归并排序的主要内容,如果未能解决你的问题,请参考以下文章