[C] Array - Ordinamento selezione di massimo

di
Anonimizzato14070
il
3 risposte

[C] Array - Ordinamento selezione di massimo

Ciao a tutti!
Siete diventati davvero una risorsa, grazie mille per tutto l'aiuto che mi state dando!
Sto cercando di scrivere, partendo da un algoritmo di ordinamento per selezione di minimo, un algoritmo di ordinamento per selezione di massimo, che quindi trovi il valore massimo all'interno dell'array e lo sposti di volta in volta sul fondo.

L'algoritmo scritto per selezione di minimo è questo:
void ord_sel_min(int a[], int n)
{int i=0;
 for (i=0;i<n;i++){
                    int j=0;
                    for (j=i+1;j<n;j++) {
                                            if (a[j] < a[i]) {
                                                                int temp=a[j];
                                                                a[j]=a[i];
                                                                a[i]=temp;
                                                            }
                            }
                }
}
Ora, in un certo senso l'algoritmo per essere di selezione di massimo, dovrebbe operare "al contrario", quindi partendo dal fondo e man mano arrivare all'inizio.
Ma non so come scriverlo effettivamente, come cambiare i due for?

3 Risposte

  • Re: [C] Array - Ordinamento selezione di massimo

    
    void ord_sel_max(int a[], int n)
    {int i=0;
     for (i=n-1; i>0; i--){
                        int j=0;
                        for (j=0;j<n+1;j++) {
                                                if (a[j] > a[i]) {
                                                                    int temp=a[j];
                                                                    a[j]=a[i];
                                                                    a[i]=temp;
                                                                }
                                }
                    }
    }
    
    Per ora ho scritto questo, ma nonostante tutto l'ordinamento non è corretto
  • Re: [C] Array - Ordinamento selezione di massimo

    for (j=0;j<n+1;j++)
    Perchè vai fino a n+1 e non ti fermi invece a (i-1)?
  • Re: [C] Array - Ordinamento selezione di massimo

    candaluar ha scritto:


    for (j=0;j<n+1;j++)
    Perchè vai fino a n+1 e non ti fermi invece a (i-1)?
    Madonna mia non ci avevo pensato
    Grazie di vero cuore!
Devi accedere o registrarti per scrivere nel forum
3 risposte