Capire il selection sort in C

di il
21 risposte

21 Risposte - Pagina 2

  • Re: Capire il selection sort in C

    Ripassa bene il capitolo del for e fai tante prove, magari usa anche un debugger.
    Le cose sono più articolate di quello che pensi. Ad esempio potresti scrivere
    
    #include <stdio.h>
    
    int main(){
        char i = 0, s[] = "Hello World!";
        for( ; s[i] && printf("%c", s[i++]) > 0; );
        return 0;
    }
    
  • Re: Capire il selection sort in C


    il fatto è che penso di sapere come si sviluppi ciclo FOR, il problema mia è che non capisco come funzioni il ciclo FOR quando è collegato all' ARRAY

    cioè alla fine un ciclo viene indicato con un inizio (i=0) una fine (i <= 7) e il ciclo vero e proprio (i++ o i+1) non penso ci sia altro.
    ma quando questa funzione viene collegata ad un array inizio a non capire bene la logica.

    però in un array bidimensionale il ciclo può essere usato per stampare i settori di righe e colonne
    Allora, se il tuo libro ti pare molto complesso puoi cercare di studiare anche online, ad esempio la pagina di wikipedia spiega molto bene questo algoritmo di ordinamento, https://it.wikipedia.org/wiki/Selection_sor
    Comunque secondo me stai correndo un po' troppo, ancora non hai capito bene il funzionamento dei cicli for e già vuoi cimentarti con gli algoritmi di ordinamento?

    il fatto è che penso di sapere come si sviluppi ciclo FOR, il problema mia è che non capisco come funzioni il ciclo FOR quando è collegato all' ARRAY
    te lo spiego in modo molto semplice, ma studia bene questo argomento, un array è una struttura dati che può contenere tante variabili dello stesso tipo, per poter accedere ad una precisa variabile devi indicare il suo indice tra le parentesi quadre, ad esempio per accedere all'elemento alla quinta posizione dovrai fare così, array[5-1] (poichè ricordati che si parte sempre da 0), ora facciamo finta di avere un array di 10 elementi, per controllare tutti gli elementi dovresti fare, array[0], array[1],array[2] ecc, per risparmiare tutti questi passaggi ha più senso creare un ciclo che vada da 0 alla grandezza dell'array in modo tale da dover scrivere semplicemente array[indice] all'interno del tuo ciclo per poter scorrere tutto l'array. Comunque come ti ho già scritto prima non basarti sulla mia spiegazione molto superficiale ma studiati bene questo argomento, o dal tuo libro o da internet, l'importante è che lo capisci a pieno. Buono studio!
  • Re: Capire il selection sort in C

    Weierstrass ha scritto:


    Ripassa bene il capitolo del for e fai tante prove, magari usa anche un debugger.
    Le cose sono più articolate di quello che pensi. Ad esempio potresti scrivere
    
    #include <stdio.h>
    
    int main(){
        char i = 0, s[] = "Hello World!";
        for( ; s[i] && printf("%c", s[i++]) > 0; );
        return 0;
    }
    
    non so dirti bene a parte che credo ci siano degli errori con i punti e virgola...
    questo codice dovrebbe stampare hello world all' infinito?
  • Re: Capire il selection sort in C

    orion99 ha scritto:



    il fatto è che penso di sapere come si sviluppi ciclo FOR, il problema mia è che non capisco come funzioni il ciclo FOR quando è collegato all' ARRAY

    cioè alla fine un ciclo viene indicato con un inizio (i=0) una fine (i <= 7) e il ciclo vero e proprio (i++ o i+1) non penso ci sia altro.
    ma quando questa funzione viene collegata ad un array inizio a non capire bene la logica.

    però in un array bidimensionale il ciclo può essere usato per stampare i settori di righe e colonne
    Allora, se il tuo libro ti pare molto complesso puoi cercare di studiare anche online, ad esempio la pagina di wikipedia spiega molto bene questo algoritmo di ordinamento, https://it.wikipedia.org/wiki/Selection_sor
    Comunque secondo me stai correndo un po' troppo, ancora non hai capito bene il funzionamento dei cicli for e già vuoi cimentarti con gli algoritmi di ordinamento?

    il fatto è che penso di sapere come si sviluppi ciclo FOR, il problema mia è che non capisco come funzioni il ciclo FOR quando è collegato all' ARRAY
    te lo spiego in modo molto semplice, ma studia bene questo argomento, un array è una struttura dati che può contenere tante variabili dello stesso tipo, per poter accedere ad una precisa variabile devi indicare il suo indice tra le parentesi quadre, ad esempio per accedere all'elemento alla quinta posizione dovrai fare così, array[5-1] (poichè ricordati che si parte sempre da 0), ora facciamo finta di avere un array di 10 elementi, per controllare tutti gli elementi dovresti fare, array[0], array[1],array[2] ecc, per risparmiare tutti questi passaggi ha più senso creare un ciclo che vada da 0 alla grandezza dell'array in modo tale da dover scrivere semplicemente array[indice] all'interno del tuo ciclo per poter scorrere tutto l'array. Comunque come ti ho già scritto prima non basarti sulla mia spiegazione molto superficiale ma studiati bene questo argomento, o dal tuo libro o da internet, l'importante è che lo capisci a pieno. Buono studio!
    la tua spiegazione è molto intuibile, però come dici tu dovrò trovare una persona umana che mi spiega ogni mio singolo dubbio oltre che a leggere un libro che se non capisco rimane scritto nello stesso modo. Ora provo a guardarmi quel link
  • Re: Capire il selection sort in C

    la tua spiegazione è molto intuibile, però come dici tu dovrò trovare una persona umana che mi spiega ogni mio singolo dubbio oltre che a leggere un libro che se non capisco rimane scritto nello stesso modo. Ora provo a guardarmi quel link
    Uno dei modi migliori per studiare è proprio quella di sbattere la testa, come dici tu è vero un libro è sempre scritto allo stesso modo ma fortunatamente (o no, dipende dal punto di vista ) siamo nel 2021 ed esiste uno strumento chiamato internet dove puoi trovare tutto! poi se hai ancora dubbi puoi sempre scrivere qua, e a quel punto saremo lieti di aiutarti. Comunque si, avere una persona fisica (veramente preparata) può essere molto d'aiuto, quindi cercarla non ti farebbe male.
  • Re: Capire il selection sort in C

    Deimos84 ha scritto:


    Weierstrass ha scritto:


    Ripassa bene il capitolo del for e fai tante prove, magari usa anche un debugger.
    Le cose sono più articolate di quello che pensi. Ad esempio potresti scrivere
    
    #include <stdio.h>
    
    int main(){
        char i = 0, s[] = "Hello World!";
        for( ; s[i] && printf("%c", s[i++]) > 0; );
        return 0;
    }
    
    non so dirti bene a parte che credo ci siano degli errori con i punti e virgola...
    questo codice dovrebbe stampare hello world all' infinito?
    una volta sola
  • Re: Capire il selection sort in C

    Mi sembra che il thread sia andato a finire in OT...
Devi accedere o registrarti per scrivere nel forum
21 risposte