Corso C - C++ ITA - 11 Algoritmi di Sort (ordinamento vettori)

Поделиться
HTML-код
  • Опубликовано: 6 янв 2025

Комментарии • 52

  • @fighiblue5673
    @fighiblue5673 11 лет назад

    mi era sfuggita questa lezione...proprio quello che cercavo, grazie mille

  • @fcamuso
    @fcamuso  12 лет назад

    Questo era tutto nuovo ed anche quello sulle matrici. Anche l'esercizio con i dadi e la punta sul Visual Studio. Il resto l'avevo già pronto. Sarà semi nuovo (tento di sfruttare in parte quello sul pascal) quello sulla ricorsione (ma ci sto ancora pensando). E saranno tutti nuovi quelli con Visual Studio (e lì gioco forza il ritmo di pubblicazione rallentera!). Anche perchè ho quelli in paralleto su Delphi (ancora alcune puntate) e quello tutto nuovo su HTML5.

  • @fcamuso
    @fcamuso  12 лет назад +1

    Se intendi quello su cui ho trovato l'applet java di simulazione, è questo:
    /ww w.cs.oswego.edu/~mohammad/classes/csc241/samples/sort/Sort2-E.html

  • @fcamuso
    @fcamuso  11 лет назад

    Una applet java. Penso la si possa trovare cercando con 'quick sort java applet' o 'quick sort animation simulation' o simili.

  • @fcamuso
    @fcamuso  12 лет назад

    Grazie. Ho messo l'indirizzo (che come sapete qui rifiuterebbe) nella descrizione iniziale del video.

  • @nicolosgarbanti8884
    @nicolosgarbanti8884 6 лет назад

    Ho un dubbio: alla prima chiamata ricorsiva della funzione " Quicksort(data,left,j) " j diventa il mio nuovo right e io perdo il right originale del vettore, cioè la posizione 15, non è così? Quindi non riesco più a lavorare successivamente sulla parte destra e così mi viene su devc++.
    Mi sto un pò scervellando su questa cosa

  • @D1820LB
    @D1820LB 6 лет назад

    Salve prof, video fatto bene. Ho compreso bene. Però l'ultima parte non mi è chiara (prima dell'implementazione del codice) dal minuto 27:30 in poi. Grazie

  • @prossenf
    @prossenf 9 лет назад

    nel programmino di esempi sulle velocità mi da su tutte e 3 le velocità "0".
    il pc sul quale gira dev è vecchiotto .. non mi ci raccapezzo!!!

  • @Mario-yp9fj
    @Mario-yp9fj 8 лет назад

    Mi scusi professore, a me continua a dare 7 messaggi di errore e più esattamente:error: invalid conversion from 'int' to 'int*', in pratica su ogni (v, QUANTI), eppure l'ho ricopiato fedelmente e controllato e ricontrollato più e più volte. Gentilmente, mi può dire dov'è l'inghippo? Grazie.

  • @Acme-l7k
    @Acme-l7k 9 лет назад +3

    Salve prof, purtroppo l'applet java viene bloccato dalla sicurezza java...conosce altri simulatori?

    • @fighiblue5673
      @fighiblue5673 9 лет назад

      Raffaele Guido cerca sound of sorting su google

  • @fighiblue5673
    @fighiblue5673 11 лет назад

    ma il while (i

    • @fcamuso
      @fcamuso  11 лет назад

      Bisogna spostare a sinistra della posizione mid elementi più piccoli di data[mid] scambiandolo con uno che si trova alla destra. Quando i scavalca la j (i>j) non sono più possibili scambi quindi ci ferma e si chiama ricorsivamente l'algoritmo sulla metà di sinistra e quella di destra.

  • @ivanpicca94
    @ivanpicca94 11 лет назад

    si trovano sul tuo canale esempi su algoritmi di fusione(merge) ??? grazie in anticipo

  • @johnwonderlich2886
    @johnwonderlich2886 9 лет назад

    Prof grazie per i suoi tutorial, sono essenziali per me. Ho una domanda. Vorrei creare un pulsante di download dove mi scarichi il file automaticamente in un percorso ben determinato dal sottoscritto, evitando la classica finestra di "salva con nome" che appare all'utente quando preme il pulsante. Come potrei fare? La ringrazio anticipatamente.

  • @fcamuso
    @fcamuso  12 лет назад

    Sì. Solo che per renderla generale hanno pensato di far passare come parametro il criterio stesso per decidere quando un elemento è maggiore di un altro (qualunque sia il tipo degli elementi). Per capire l'esempio (tratto da Internet) bisogna comprendere l'uso dei puntatori (spiegati più avanti nel corso):

  • @VincenzoSantopietro
    @VincenzoSantopietro 11 лет назад

    Mi sei stato di grande aiuto per il mio prossimo esame all'università ! Nelle audiolezioni della mia prof.non si capisce nulla riguardo il quick sorting.
    Un saluto da Napoli!

  • @imet97
    @imet97 11 лет назад

    Mi scusi volevo chiederle una cosa .. mi potrebbe spiegare perchè ce 'utilizzo di due cicli e del secondo indice j rispettivo?

    • @fcamuso
      @fcamuso  11 лет назад

      Perchè con una sola 'passata' che scandisce il vettore è impossibile metterlo in ordine. Bisogna farlo più volte avvicinandosi sempre più al'obiettivo, con tecniche diverse adottabili

  • @EnzoPower95
    @EnzoPower95 12 лет назад

    che sito è quello che lei utilizza in questa guida?

  • @maxquattro1134
    @maxquattro1134 8 лет назад

    Complimenti per il video! mi hai aiutato moltissimo, infatti è l'unica videoguida su l'ordinamento dei vettori.
    Non ho capito nel primo for del selection_sort perchè dovrei mettere i

  • @Mirko1855
    @Mirko1855 12 лет назад

    Fantastici video..seguo con interesse.
    Una domanda: questi video sono già pronti, come i primi, o li fa lei man mano?

  • @massimoprisco3668
    @massimoprisco3668 6 лет назад

    e se io volessi ordinarlo in senso decrescente?

  • @rainbow6298
    @rainbow6298 11 лет назад

    Arrivato a questo punto del corso, noto la difficoltà logica di un algoritmo come quello del quicksort e mi sorge una domanda: 1)nelle prossime lezioni la complessità algoritmica tende a diventare simile a questa?2) Per poter diventare buoni programmatori occorre riuscire a padroneggiare algoritmi del genere(come il quicksort) o anche più complessi o diciamo che sono rari i casi in cui serve una capacità di scrittura algoritimica di questo tipo? Grazie.

    • @fcamuso
      @fcamuso  11 лет назад

      No, il quick sort può essere considerato un 'picco'; per una vasta fetta di applicativi non è necessario arrivare a questo livello.
      Detto questo: ce ne sono moltissimi anche di complicati; ma lasciamoli ad applicazioni 'spinte'.

    • @rainbow6298
      @rainbow6298 11 лет назад

      capito, grazie per la risposta.

  • @LucaCo
    @LucaCo 6 лет назад

    Domanda, ma nell'ordinamento sort, è giusto il codice? cioè se non entro nell if il min_id che valore ha?non devo porre il min_id=i prima del secondo ciclo for?

    • @LucaCo
      @LucaCo 6 лет назад +1

      non è meglio mettere lo scambio dentro la condizione if?

    • @smecmanca
      @smecmanca 5 лет назад

      hai ragione, non funziona

  • @oldblackstreet
    @oldblackstreet 11 лет назад

    Che programma ha usato per far vedere a video i passaggi dell'algoritmo?

  • @maxtolomeo6250
    @maxtolomeo6250 10 лет назад

    Dove posso trovare un programma che svolge la traccia dell'algoritmo?Grazie

    • @fcamuso
      @fcamuso  10 лет назад

      Cercando con google 'c++ sort algorithm' troverà molti sorgenti. Il c++ ha già la funzione pronta all'uso in una sua libreria (vedrà anche questi riferimenti nei risultati)

  • @cosmin26100
    @cosmin26100 12 лет назад

    con te ho capito piu di quello che spiega la prof!grazieeee

  • @imet97
    @imet97 11 лет назад

    Mi potrebbe dire sinteticamente quindi cosa avviene nel selectsort e nel bubble ...

    • @fcamuso
      @fcamuso  11 лет назад

      Il primo procede trovando il minimo nella parte di vettore ancora da ordinare e lo sposta all'inizio della porzione in cui lo ha cercato.
      Il secondo confronta il primo con il secondo, e nel caso scambia, poi il secondo con terzo e poi terzo con quarto ecc. Dopo il primo giro abbiamo il max (o min dipende da cosa si vuol fare) in ultima posizione. Si ripete escludendo l'ultima posizione e così via sistemando una posizione alla volta.

  • @fcamuso
    @fcamuso  12 лет назад

    con un criterio anche tutto strano; è sufficiente che restituisca -1 se a precede b, 0 se a stesso valore di b, 1 se a segue b secondo il criterio di ordinamento

  • @fcamuso
    @fcamuso  12 лет назад +1

    ;)
    Tieni conto però che per me è più facile, nella tranquillità della mia stanzetta, essere chiaro e preciso; in tempo reale a scuola di solito lo fai con una allegra tribu che ti accende un fuocherello sotto la sedia, canta inni, organizza un party in tempo reale; inoltre è una legge: quando arrivi al momento più importante passa SEMPRE un gruppo di ragazze in cortile per il fantomatico test di Cooper. Chissà perchè i miei rudi maschiacci ITIS all'unisono si voltano, chissa perchè :) Grazie.

  • @etettesqq
    @etettesqq 11 лет назад

    ma mettendo i=0; i

  • @fcamuso
    @fcamuso  12 лет назад

    In pratica si passa al qsort l'indirizzo (nome) della funzione che fa il confronto, che nell'esempio è la funzione 'compare'. const *int significa indirizzo di un intero che non si può modificare. *void è 'indirizzo' di qualsiasi cosa; (int *) cast a indirizzo di un intero; *(int *)a valore indirizzato dal puntatore a dato generico (void *a) forzato ad essere usato come un intero. E' difficile, lo so ... però molto flessibile: sei tu che decidi come mettere in ordine elementi di QUALSIASI tipo:

  • @fcamuso
    @fcamuso  12 лет назад

    esatto

  • @smecmanca
    @smecmanca 5 лет назад

    Prof, guardi che il selection sort NON FUNZIONA, perchè se non c’è niente da scambiare comunque lui fa uno scambio col precedente minimo, ci vuole un if provi con la sequenza (56, 40, 20, 9, 1)

  • @fcamuso
    @fcamuso  11 лет назад

    v[10] significa 10 elementi da v[0] a v[9]; v[n] da v[0] a v[n-1]
    indicare

  • @fcamuso
    @fcamuso  12 лет назад

    Come al solito ho appositamente 'storpiato' la parte iniziale dell'indirizzo per farlo 'digerire' a youtube :)

  • @fcamuso
    @fcamuso  12 лет назад

    Sì, tranquillo, è abbastanza avanzato. E' formativo ma non essenziale: si può vivere tranquillamente usando le funzioni di sort (qsort) disponibili nelle librerie standard del linguaggio.

  • @Lorenzochirichi
    @Lorenzochirichi 12 лет назад

    mi chiamo lorenzo e sono un ragazzo di 13 anni,ma cè una funzione tipo .sort().
    senza utilizzare la sintassi del video,che è un po complicata.

  • @programmatore97
    @programmatore97 12 лет назад +1

    Bel video, anche se è un po complicato, almeno per me che sono al primo anno di liceo.

  • @fcamuso
    @fcamuso  11 лет назад

    Ottimo, mi fa piacere

  • @REPOORTEHT
    @REPOORTEHT 4 года назад

    Sicuramente non leggerai il mio commento dato che il video è vecchio secoli, ma ti chiedo che utilità ne può avere un novellino a conoscere gli algoritmi di sorting di un array... Lo dico perché ho cominciato anche io come autodidatta e mettendomi in quei panni sarei a dir poco confuso da queste informazioni che reputo inutili e fuorvianti. Considerato il livello a cui è rivolto il corso, sia chiaro.

  • @fcamuso
    @fcamuso  12 лет назад

    uffa ... dimenticavo quanto yoututbe fosse schizzinoso con i caratteri strani... Posto l'indirizzo da completare sempre per via dei caratteri 'proibiti':
    w w w cplusplus c o m reference clibrary cstdlib qsort
    togli gli spazi di troppo, metti i punti e dopo il com i separatori sono tutti dei forward slash (simbolo del tasto '7')

  • @angelodinapoli4900
    @angelodinapoli4900 4 года назад

    Questo non è il bubble-sort....

  • @milenadesantis5698
    @milenadesantis5698 4 года назад

    il 31 più a destra nel quick sort era da scambiare credo... mi sono scervellato ahhahahahhaah