QUICKSORT … un breve ripasso!

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

1 Automazione dellalgoritmo ricorsivo di permutazione eseguita da Mariano Melchiorri.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
                      Insertion-Sort
if (condizione.) { blocco_istruzioni } else
Ricorsione Procedure e funzioni ricorsive. Definizioni Un oggetto si dice ricorsivo se è definito totalmente o parzialmente in termini di sé stesso La.
Procedure e funzioni ricorsive
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Tino CortesiTecniche di Analisi di Programmi 1 Ricorsione Aggiungiamo funzioni ricorsive (in una sola variabile, per semplicità). La funzione semantica.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Informatica B Allievi Elettrici AA La progettazione per raffinamenti successivi.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Usa la tecnica del.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Primo esercizio Scrivere un programma che legge da input
CORSO DI PROGRAMMAZIONE II
CORSO DI PROGRAMMAZIONE II
Algoritmi e Strutture Dati (Mod. A)
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Progetto di algoritmi: metodologia "Divide et Impera"
APPUNTI SUL LINGUAGGIO C
Lalgoritmo MergeSort Applica la strategia del divide et impera Divide: suddivide la sequenza di n elementi data in due sottosequenze di n/2 elementi Impera:
QuickSort Quick-Sort(A,s,d) IF s < d THEN q = Partiziona(A,s,d) Quick-Sort(A,s,q-1) Quick-Sort(A,q + 1,d)
Algoritmi su Tipi Semplici
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
OPERAZIONI CON STRINGHE Le operazioni più interessanti da fare, per ora, con le stringhe sono: determinare la lunghezza della stringa, cioè quanti caratteri.
Si vuole che lesecutore coniughi non solo il presente indicativo ma anche limperfetto e il passato remoto Acquisisci tempo presente imperfetto passato.
Lordinamento di tre numeri interi. acquisisci a,b,c (a > b) AND (a > c)(b > a) AND (b > c) (c > a) AND (c > b) Scrivi c,b,aScrivi b,c,aScrivi c,a,bScrivi.
Intuizione:. Come usare il Teorema dellesperto T(n) = aT(n/b)+f(n) 2.Calcolare 4.Se il limite è finito e diverso da 0 siamo nel Caso 2 e 3.Calcolare il.
SCUOLE SUPERIORI SCELTE DAGLI ALUNNI DI CARAVATE E LEGGIUNO A.S. 2004/05.
Fondamenti di Informatica e Informatica di base Prof.ssa Elisa Tiezzi
Teoria degli algoritmi e della computabilità Terza giornata: Ricerca e ordinamento ottimi. P vs NP, algoritmi di approssimazione, e il potere della randomizzazione.
Algoritmi CHE COS’è UN ALGORITMO di ORDINAMENTO?
1/32 Algoritmi e Strutture Dati HEAP Anno accademico
ALGORITMO Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un formalismo che permette di rappresentare.
PIC16F84A (terza lezione). PARAMETRI MASSIMI DEL PIC Dissipazione totale = 800 mW Corrente diogni pin = 25 mA Corrente della PORTA completa = 50 mA Corrente.
Soluzione 6: Algoritmo Quicksort
PROVA INTERCORSO MOD.B a.a RICORSIONE ESERCIZI A1.1-A1.6.
TECNICA DIVIDE ET IMPERA
Algoritmi e Strutture Dati
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
CORSO DI PROGRAMMAZIONE II
1 Un po’ di ripasso di algebra §necessaria per discutere la semantica denotazionale l e da riprendere quando parleremo di interpretazione astratta §reticoli.
Lo strano mondo degli algoritmi di ordinamento Algoritmi.
Problema dell’Ordinamento. Problema dell’ordinamento Formulazione del problema –Si vuole ordinare una lista di elementi secondo una data proprietà P Esempio:
GLI ALGORITMI DI ORDINAMENTO
Quick sort void quick_sort (int a[],int l, int r) { int i, j,v, t; if (r>l) { v=a[r];//L’elemento “pivot” è quello più a dx i=l-1; j=r; // i scorre da.
Capitolo 4 Ordinamento: lower bound Ω(n log n) e MergeSort ((*) l’intera lezione) Algoritmi e Strutture Dati.
Divide et Impera Parte 11 - Risoluzione di problemi per divisione in sottoproblemi “bilanciati” Corso A: Prof. Stefano Berardi
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Algoritmo per il calcolo del maggiore tra tre numeri qualsiasi Francesco PUCILLO matr
MergeSort Usa la tecnica del divide et impera:
Transcript della presentazione:

QUICKSORT … un breve ripasso! Andrea Prevete, LASD 2004-05

IF b<p THEN Quicksort(b, p-1, k, A) La procedura ricorsiva Quicksort ordina il segmento dell’array A definito dagli indici rispettivamente inferiore e superiore b e t, finchè la lunghezza del suddetto segmento non è inferiore ad un valore fissato k – nel qual caso il compito è demandato ad una procedura di ordinamento light PROC Quicksort(b, t, k, A) IF (t-b) < k THEN Sort(b, t, A) ELSE p <- Pivot(b,t,A) IF b<p THEN Quicksort(b, p-1, k, A) IF p<t THEN Quicksort(p+1, t, k, A) ENDIF ENDPROC Andrea Prevete, LASD 2004-05

Ad ogni attivazione Quicksort richiama la funzione Pivot che restituisce alla fine del processo un indice in corrispondenza del quale A ha un valore >= di tutti gli elementi alla sua sinistra e <= di tutti quelli alla sua destra. Attenzione! Perché Pivot funzioni correttamente – così come qui implementata – è necessario estendere l’array di partenza con un elemento in coda di valore non inferiore ad alcuno degli elementi da ordinare. FUNCTION Pivot(b, t, A) p <- b b <- b+1 WHILE b<= t WHILE A[b] < A[p] b <- b+1 WHILE A[t] > A[p] t <- t-1 IF b<t THEN SWAP(A[b], A[t]) t <- t-1 ENDIF ENDW SWAP(A[p], A[t]) RETURN t ENDFUN Andrea Prevete, LASD 2004-05