Răspuns :
Răspuns:
Programul arata asa:
int v[100]
void afisare( int n ) {
int i;
for ( i = 0; i < n; i ++ ) {
printf( "%d ", v[i] );
}
}
int main() {
int n, i;
scanf( "%d", &n );
for ( i = 0; i < n; i ++ ) {
scanf( "%d", &v[i] );
}
sortare();
afisare( n );
return 0;
}
Explicație:
pentru sortare, am doua functii: quick_sort si select_sort. O alegi pe care vrei:
void quick_sort( int st, int dr ) {
int i = st, j = dr, piv = v[( st + dr ) / 2];
int aux;
while ( v[i] > piv )
i ++;
while ( v[j] < piv )
j --;
while ( i < j ) {
aux = v[i];
v[i] = v[j];
v[j] = aux;
do
i ++;
while ( v[i] > piv );
do
j --;
while ( v[j] < piv );
}
if ( st < j )
quick_sort( st, j );
if ( j + 1 < dr )
quick_sort( j + 1, dr );
}
void select_sort( int n ) {
int maxim, i, j, poz, aux;
for ( i = 0; i < n; i ++ ) {
maxim = v[i];
poz = i;
for ( j = i + 1; j < n; j ++ ) {
if ( v[j] > maxim ) {
maxim = v[j];
poz = j;
}
}
aux = v[i];
v[i] = v[poz];
v[poz] = aux;
}
}
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!