Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //merge sort
- #include <iostream>
- #include <algorithm>
- using namespace std;
- int A[1000],B[1000],C[1000],data[1000];
- int main ()
- {
- int n,iA,iB,iC;
- iA=0;
- iB=0;
- iC=1;
- cin >> n;
- for(int i=0;i<=n-1;++i)
- {
- //nhap mang
- cin >> data[i];
- }
- int left, right,mid;
- left =1;
- right = n;
- mid = (left + right)/2;
- for(int i=0, j=mid ; i<=mid-1,j<=right-1 ; ++i,++j)
- {
- // tach lam 2 mang
- A[iA]=data[i];
- iA++;
- B[iB]=data[j];
- iB++;
- }
- for(int i=0;i<=mid-1;++i)
- // sap xep 2 mang
- {
- for(int j=0;j<=mid-1;++j)
- {
- if(A[j]>A[j+1])
- {
- swap(A[j],A[j+1]);
- }
- if(B[j]>B[j+1])
- {
- swap(B[j],B[j+1]);
- }
- }
- }
- // in ra 2 cai mang nay da sap xep
- for(int iA=1,iB=1;iA<=mid,iB<=right-mid;++iA,++iB)
- {
- cout << A[iA] <<' '<< B[iB] << "\n";
- }
- for(int iA=1,iB=1;iA<=mid,iB<=right-mid;)
- {
- if(A[iA]<B[iB])
- {
- // so sanh cac phan tu A va cac phan tu B de insert vao mang C
- C[iC]=A[iA];
- iA++;
- iC++;
- if(A[iA]>B[iB])
- {
- C[iC]=B[iB];
- iB++;
- iC++;
- }
- }
- }
- for(int iC=1;iC<=right;++iC)
- {
- cout << C[iC] << ' ' ;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement