Se citeste un vector cu n elemente . sa se afiseze in ordine crescatoare respectiv descrescatoare folosind sortarea prin interclasare . am nevoie de
rezolvarea algoritmului urgent . ofer 60 de puncte !! va rog chiar am nevoie de ea !!
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>
using namespace std;
///*********************************************
void citeste(int &N, int X[]){ cin >> N ;
for(int i = 1 ; i <= N ; ++ i) cin >> X[i] ;}
///*********************************************
void interclasare(int st, int m, int dr, int X[]){
int B[105] ; int x = st ; int k = 1 ; int y = m + 1 ;
while(x <= m && y <= dr) if(X[x] < X[y]) ///Schimb aici semnul ca sa sorteze invers B[k ++ ] = X[x ++] ; else B[k ++] = X[y ++] ;
while(x <= m) B[k ++] = X[x ++] ;
while(y <= dr) B[k ++] = X[y ++] ;
int t = st ;
for(int i = 1 ; i <= (dr - st) + 1; i ++ ) X[t ++ ] = B[i] ;}
///*********************************************void divide(int st, int dr, int X[]){ if(st < dr) { int m = (st + dr) / 2 ; divide(st, m, X) ; divide(m + 1, dr, X) ; interclasare(st, m, dr, X) ; }}
///*********************************************
void afisare(int N, int X[]){ ///de la 1 la N este sortat crescator for(int i = 1 ; i <= N ; ++ i) cout << X[i] << ' ';
cout << '\n' ; ///de la N la 1 ese sortat descrescator for(int i = N ; i > 0 ; i --) cout << X[i] << ' ' ;
cout << '\n' ;}
int main(){ int N, X[105] ;
citeste(N, X) ; divide(1, N, X) ; afisare(N, X) ;
return 0;}
using namespace std;
///*********************************************
void citeste(int &N, int X[]){ cin >> N ;
for(int i = 1 ; i <= N ; ++ i) cin >> X[i] ;}
///*********************************************
void interclasare(int st, int m, int dr, int X[]){
int B[105] ; int x = st ; int k = 1 ; int y = m + 1 ;
while(x <= m && y <= dr) if(X[x] < X[y]) ///Schimb aici semnul ca sa sorteze invers B[k ++ ] = X[x ++] ; else B[k ++] = X[y ++] ;
while(x <= m) B[k ++] = X[x ++] ;
while(y <= dr) B[k ++] = X[y ++] ;
int t = st ;
for(int i = 1 ; i <= (dr - st) + 1; i ++ ) X[t ++ ] = B[i] ;}
///*********************************************void divide(int st, int dr, int X[]){ if(st < dr) { int m = (st + dr) / 2 ; divide(st, m, X) ; divide(m + 1, dr, X) ; interclasare(st, m, dr, X) ; }}
///*********************************************
void afisare(int N, int X[]){ ///de la 1 la N este sortat crescator for(int i = 1 ; i <= N ; ++ i) cout << X[i] << ' ';
cout << '\n' ; ///de la N la 1 ese sortat descrescator for(int i = N ; i > 0 ; i --) cout << X[i] << ' ' ;
cout << '\n' ;}
int main(){ int N, X[105] ;
citeste(N, X) ; divide(1, N, X) ; afisare(N, X) ;
return 0;}
burcalucica66:
ce inseamna acele stelute ? //*********************** ?
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă