Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int v[101], n;
- void imbin(int st, int dr)
- {
- //zone(v[st]...V[m]) reunit (v[m+1]...v[dr])
- int i, j, loc=0, aux[101];
- int m=(st+dr)/2;
- i=st;
- j=m+1;
- while(i<=m && j<=dr)
- {
- if(v[i]<v[j])
- {
- loc++;
- aux[loc]=v[i];
- i++;
- }
- else
- {
- loc++;
- aux[loc]=v[j];
- j++;
- }
- }
- while(i<=m)
- aux[++loc]=v[i++];
- while(j<=dr)
- aux[++loc]=v[j++];
- loc=1;
- for(i=st; i<=dr; i++)
- {
- v[i]=aux[loc];
- loc++;
- }
- }
- void f(int st, int dr)
- {
- int m=(st+dr)/2;
- if(st<dr)
- {
- f(st, m);
- f(m+1, dr);
- imbin(st, dr);
- }
- }
- int main()
- {
- cin>>n;
- for(int i=1; i<=n; i++)
- cin>>v[i];
- f(1, n);
- for(int i=1; i<=n; i++)
- cout<<v[i]<<" ";
- return 0;
- }
- /*71 23 4 15 2 1 60 12*/
Add Comment
Please, Sign In to add comment