Algoritmi di Ricerca Ordinamento

Размер: px
Начинать показ со страницы:

Download "Algoritmi di Ricerca Ordinamento"

Транскрипт

1 Algoritmi di Ricerca e Ordinamento Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Appunti Di Informatica Prof. Accarino 1

2 Algoritmi classici In ambito informatico alcuni problemi si presentano con elevata frequenza in più ambiti e sono stati ampiamente studiati Ricerca di un elemento in un vettore Ricerca del minimo e del massimo Ordinamento Gli algoritmi impiegabili in questi casi sono numerosi. I più noti, di seguito presentati, vengono spesso impiegati anche come termini di paragone per valutare le prestazioni di nuove soluzione proposte Appunti Di Informatica Prof. Accarino 2

3 Algoritmi di ricerca Il problema della ricerca di un elemento in un vettore si presenta frequentemente: Occorre verificare se l elemento appartiene al vettore Ad un elemento (o alla sua posizione) sono associate informazioni supplementari Esistono due algoritmi standard per la risoluzione di questo problema Appunti Di Informatica Prof. Accarino 3

4 Ricerca sequenziale L idea di fondo è semplice: Si scorre l intero vettore dalla prima posizione e si confronta ogni elemento con quello ricercato 0 Appunti Di Informatica Prof. Accarino 4

5 Ricerca sequenziale 0 1 Appunti Di Informatica Prof. Accarino 5

6 Ricerca sequenziale 2 3 Appunti Di Informatica Prof. Accarino 6

7 Ricerca sequenziale L algoritmo di ricerca sequenziale funziona senza richiedere particolari ipotesi sull ordinamento dei dati Mediamente occorre scandire metà vettore per trovare l elemento cercato (se c è) infatti è possibile trovare l elemento al primo tentativo o dopo N tentativi quindi in media: N+1 (casi favorevoli 1, N fratto i casi possibili) 2 se non c è, occorre fare tutti gli N tentativi Si dice che il tempo di esecuzione cresce linearmente al variare di N Appunti Di Informatica Prof. Accarino 7

8 Flowchart e Codifica in C #include stdio.h #include conio.h #define NumMax 20 Void Main(){ Int vet[nummax],i,n; Printf( inserisci il numero da cercare ); Scanf( %d,&n); Char Trovato=0; i=0; While(Trovato==0&&i<NumMax){ If(vet[i]==N Trovato=1; i++; } If(Trovato==1) Printf( trovato il numero %d,n); Else Printf( non trovato il numero %d,n); } Appunti Di Informatica Prof. Accarino 8

9 Ricerca binaria Se il vettore è ordinato, allora è possibile utilizzare approcci più efficienti rispetto alla ricerca sequenziale La ricerca binaria prevede l osservazione dell elemento al centro del vettore e dei due estremi. Se uno di questi è l elemento cercato termina, altrimenti scarta tutta una metà del vettore a seconda che l elemento centrale sia maggiore o minore di quello cercato Il processo si ripete fino a trovare l elemento cercato o a scartarli tutti Appunti Di Informatica Prof. Accarino 9

10 Ricerca binaria L approccio è lo stesso adottato per cercare una parola nel dizionario o un nome nella rubrica telefonica Es. cerco il numero di Rossi Mario Apro circa a metà, sulla lettera N Vado avanti di diverse pagine Arrivo alla lettera S Torno indietro a Ra Vado avanti di poco, arrivando a Rov.. Ci sono quasi, torno indietro di una pagina etc Appunti Di Informatica Prof. Accarino 10

11 Ricerca binaria Rispetto all algoritmo sequenziale, la ricerca binaria usa due ulteriori indici per individuare gli estremi della porzione del vettore non ancora esclusa 16 Appunti Di Informatica Prof. Accarino 11

12 Ricerca binaria L indice iniziale è sempre a metà tra gli indici degli estremi 8 16 L elemento cercato (10) è minore di 18, per cui si esclude la seconda metà del vettore Appunti Di Informatica Prof. Accarino 12

13 Ricerca binaria La metà tra 0 e 7 è 3,5: poiché gli indici devono essere interi, si sceglie tra 3 e Questa volta l elemento centrale è precedente a quello cercato, per cui si prosegue nella ricerca escludendo la metà di sinistra Appunti Di Informatica Prof. Accarino 13

14 Ricerca binaria Come nel caso precedente, si tronca il valore dell indice all intero inferiore 5 7 L elemento cercato, viene quindi trovato. La risposta fornita dall algoritmo è 5, cioè la posizione corrispondente al valore cercato Appunti Di Informatica Prof. Accarino 14

15 Ricerca binaria L algoritmo di ricerca binaria dimezza la dimensione dello spazio di ricerca ad ogni passo Il tempo necessario all esecuzione dell algoritmo è dunque proporzionale al logaritmo di N Visto che logn cresce più lentamente di N, la ricerca binaria è più efficiente di quella sequenziale (ma richiede l ipotesi supplementare di ordinamento dei dati) Nel caso peggiore l algoritmo termina quando la dimensione dello spazio di ricerca diventa 1 Appunti Di Informatica Prof. Accarino 15

16 Flowchart e Codifica in C #include stdio.h #include conio.h #define NumMax 20 Void Main(){ Int vet[nummax],i,n,inizio,fine,medio; Printf( inserisci il numero da cercare ); Scanf( %d,&n); Char Trovato=0; Inizio=0; Do{ Medio=(Fine+Inizio)/2; If(vet[Inizio]==N Vet[Medio]==N Vet[Fine]==N) Trovato=1; else } If(Vet[medio<=N) Fine=Medio+1; Else Inizio=Medio-1; }while(inizio<=fine&&trovato==0); If(Trovato==1) Printf( trovato il numero %d,n); Else Printf( non trovato il numero %d,n); } } Appunti Di Informatica Prof. Accarino 16

17 Ricerca del minimo Un secondo problema riguarda la ricerca del valore minimo (o massimo) all interno di un vettore non ordinato Naturalmente il problema è banale se il vettore è ordinato! Dato che i problemi di ricerca del minimo e di ricerca del massimo sono del tutto analoghi, di seguito si farà riferimento esclusivamente alla ricerca del minimo Appunti Di Informatica Prof. Accarino 17

18 Ricerca del minimo Per risolvere il problema vengono utilizzate due variabili di supporto, contenenti: il valore minimo trovato sinora la posizione (indice) di tale valore L algoritmo scorre l intero vettore e confronta ciascun elemento col minimo contenuto nella variabile di supporto Se l elemento nel vettore è inferiore a quello nella variabile di appoggio, allora sostituisce la variabile di supporto con l elemento considerato Appunti Di Informatica Prof. Accarino 18

19 Ricerca del minimo Si inizializzano le variabili di supporto con la posizione e il valore del primo elemento 0 0 In questo modo il minimo temporaneo è non inferiore al minimo del vettore Appunti Di Informatica Prof. Accarino 19

20 Ricerca del minimo Appunti Di Informatica Prof. Accarino 20

21 Ricerca del minimo Appunti Di Informatica Prof. Accarino 21

22 Ricerca del minimo Appunti Di Informatica Prof. Accarino 22

23 Ricerca del minimo Appunti Di Informatica Prof. Accarino 23

24 Ricerca del minimo Al termine dell algoritmo le variabili di supporto contengono il valore e la posizione del minimo Se fossero presenti più minimi uguali sarebbe possibile decidere quale tenere in considerazione Data la lunghezza N del vettore, è necessario effettuare N confronti Il tempo necessario al completamento dell esecuzione è proporzionale alla dimensione del vettore Appunti Di Informatica Prof. Accarino 24

25 Flowchart e Codifica in C #include stdio.h #include conio.h #define NumMax 20 Void Main(){ Int vet[nummax],i,min,pos; min=vet[0]; pos=0; for(i=0; i<nummax;i++) if(vet[nummax<min){ min=vet[i]; pos=i; } printf( il minimo è %d e si trova in posizione %d, min, pos); } Appunti Di Informatica Prof. Accarino 25

26 Ordinamento per sostituzione I passi da seguire sono i seguenti : 1) Posizionamento sul primo elemento dell array 2) Confronto dell elemento con tutti gli elementi successivi e scambio ogni volta che se ne trova un più piccolo 3) Posizionamento sul secondo elemento dell array 4) Confronto dell elemento con tutti gli elementi successivi e scambio ogni volta che se ne trova un più piccolo 5) Posizionamento sul terzo elemento dell array 6) Confronto dell elemento con tutti gli elementi successivi e scambio ogni volta che se ne trova un più piccolo 7) Tale procedimento viene ripetuto N-1 volte Osservazione : Per implementare l Algoritmo abbiamo bisogno di 2 indici : Uno che tiene conto della posizione in cui si trova l elemento considerato ( primo, secondo, terzo, ) Uno che permette di scorrere la parte successiva dell array per effetuare i confronti e gli eventuali scambi Appunti Di Informatica Prof. Accarino 26

27 Ordinamento per sostituzione Appunti Di Informatica Prof. Accarino 27

28 Ordinamento per sostituzione Appunti Di Informatica Prof. Accarino 28

29 Ordinamento per sostituzione Appunti Di Informatica Prof. Accarino 29

30 Ordinamento per sostituzione 11 8 Per implementare l Algoritmo si devono usare 2 indici : Uno (I) che tiene conto della posizione in cui si trova l elemento da ordinare (primo, secondo, terzo, ) Uno (J) che permette di scorrere l array per effettuare il confronto ed eventualmente lo scambio I J Appunti Di Informatica Prof. Accarino 30

31 Flowchart e Codifica in C void Ordina(void){ Int I,J,C; I=0; while(i<dim-1) { J=I+1; while(j<dim) { if(v[i]>v[j]) { C=V[I]; V[I]=V[J]; V[J]=C; } J=J+1 } I=I+1; } } Appunti Di Informatica Prof. Accarino 31

32 Bubble-sort (ordinamento a bolle) L ordinamento a bolle è un algoritmo semplice basato sul metodo degli scambi. Si fanno salire gli elementi più piccoli verso l inizio del vettore scambiandoli con quelli adiacenti. Si procede confrontando gli elementi a coppie e ogni qualvolta si trova una coppia non ordinata si scambiano di posto i due elementi. Dato il vettore A[n], si opera confrontando A[1] con A[2] e se A[1] è maggiore di A[2], si effettua uno scambio tra i due; vengono poi confrontati A[2] con A[3], A[3] con A[4], A[n-1] con A[n] scambiando di posto quegli elementi che non formano coppie ordinate. Appunti Di Informatica Prof. Accarino 32

33 Esempio: Sia A il vettore da ordinare j=2 j=3 A Scambio=0 j-1=1 j-1=2j-1=3 j-1=3 j-1=4 Vettore Ordinato! La condizione è falsa 5 17 temp j=4 j=5 Scambio=0 Scambio=1 BubbleSort(A,n,scambio,temp) i:=1 repeat scambio:= 0 for j=i+1 to n do if (A[j] < A[j-1]) then temp:=a[j] A[j]:=A[j-1] A[j-1]:=temp scambio:=1 endif endfor until scambio=0 end Appunti Di Informatica Prof. Accarino 33

34 Flowchart e Codifica in C void Ordina(void){ Int I, Temp; Char scambio Do{ I=0; Scambio=0; Do{ If(Vet[I]>Vet[I+1]) { Temp=Vet[I]; Vet[I]=Vet[I+1]; Vet[I+1]=Vet[I]; scambio=1; } I=I+1; }while(i<n-1); N=N-1; }while(scambio==1&&n>0); } Appunti Di Informatica Prof. Accarino 34

35 Ordinamento per inserzione Un esempio di ordinamento per inserzione si applica quando si gioca a carte. Per ordinare le carte, in ordine crescente o decrescente, si estrae una carta, scalando quelle rimanenti, ed inserendo la carta estratta nel posto corretto. Il procedimento si ripete finché tutte le carte sono nella sequenza corretta. Il metodo di ordinamento ad inserzione trae lo spunto dall'idea che un vettore ordinato si ottiene inserendo le sue componenti una per una "al posto giusto". Appunti Di Informatica Prof. Accarino 35

36 Appunti Di Informatica Prof. Accarino 36

37 Appunti Di Informatica Prof. Accarino 37

38 Appunti Di Informatica Prof. Accarino 38

39 Appunti Di Informatica Prof. Accarino 39

40 Appunti Di Informatica Prof. Accarino 40

41 Appunti Di Informatica Prof. Accarino 41

42 Flow Chart e codifica in C void Ordina(void){ Int I,J,P; I=1 While(I<Dim) { P=Vet[i]; J=I-1; while(j>0&&vet[j]>p) { Vet[J+1]=Vet[J]; J=J-1; } Vet[J+1=P; I=I+1 } } Appunti Di Informatica Prof. Accarino 42

43 Ordinamento per Selezione I passi da seguire sono i seguenti : 1) Posizionamento sul primo elemento dell array 2) Ricerca dell elemento più piccolo e scambio con il primo elemento dell array 3) Posizionamento sul secondo elemento dell array 4) Ricerca dell elemento più piccolo tra gli N-1 elementi rimasti e scambio con il secondo elemento dell array 5) Posizionamento sul terzo elemento dell array 6) Ricerca dell elemento più piccolo tra gli N-2 elementi rimasti e scambio con il terzo elemento dell array 7) Tale procedimento viene ripetuto N-1 volte Osservazione : Per implementare l Algoritmo abbiamo bisogno di 2 indici : Uno che tiene conto della posizione in cui si trova l elemento da ordinare ( primo, secondo, terzo, ) Uno che permette di scorrere l array alla ricerca del valore maggiore Appunti Di Informatica Prof. Accarino 43

44 Appunti Di Informatica Prof. Accarino 44

45 Per implementare l Algoritmo si devono usare 2 indici : Uno (I) che tiene conto della posizione in cui si trova l elemento da ordinare (primo, secondo, terzo, ) Uno (J) che permette di scorrere l array alla ricerca del valore minore I J Appunti Di Informatica Prof. Accarino 45

46 Flow Chart e Codifica in C void Ordina(void){ Int I,J,Pmin,Min; I=0 While(I<Dim-1) { Min=Vet[I]; Pmin=I; J=I+1; while(j<dim) { if(vet[j]<min){ Min=Vet[J]; Pmin=J; } J=J+1; } if(pmin>i){ Vet[Pmin]=Vet[I]; Vet[I]=Min; } I=I+1; } } Appunti Di Informatica Prof. Accarino 46

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Подробнее

Algoritmo di ordinamento per scambio (a bolle o bubble sort)

Algoritmo di ordinamento per scambio (a bolle o bubble sort) Algoritmo di ordinamento per scambio (a bolle o bubble sort) Per ottenere un ordinamento crescente con l algoritmo di ordinamento per scambio (bubble sort) si prenno in considerazione i primi due elementi

Подробнее

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Подробнее

Algoritmo di ordinamento per sostituzione. Esempio : dato l array :

Algoritmo di ordinamento per sostituzione. Esempio : dato l array : Algoritmo di ordinamento per sostituzione Per ottenere un ordinamento crescente con l algoritmo di ordinamento per Sostituzione si confronta l elemento nella prima posizione con gli elementi nelle posizioni

Подробнее

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Подробнее

Anche se due variabili vettore sono dello stesso tipo, NON è possibile l assegnamento diretto:

Anche se due variabili vettore sono dello stesso tipo, NON è possibile l assegnamento diretto: ESERCIZIO: Lettura/Scrittura Array Non è possibile leggere/scrivere un intero vettore con un unica operazione (a parte il caso particolare delle stringhe); occorre leggere/scrivere ognuno dei suoi componenti

Подробнее

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol. Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: [email protected] sito: users.iol.it/genna18 Risoluzione di un problema Dato

Подробнее

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion

Подробнее

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Gli algoritmi di base sul tipo array: ordinamento e ricerca Claudio De Stefano - Corso di Fondamenti di Informatica 1 Algoritmi di ordinamento gli algoritmi si differenziano

Подробнее

Esercizi C su array e matrici

Esercizi C su array e matrici Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]

Подробнее

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Подробнее

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Подробнее

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

Подробнее

Ricerca binaria (o dicotomica) di un elemento in un vettore

Ricerca binaria (o dicotomica) di un elemento in un vettore Ricerca binaria (o dicotomica) di un elemento in un La ricerca binaria o dicotomica è utilizzata per ricercare i dati in un ORDNATO. L algoritmo di ricerca binaria, dopo ogni confronto, scarta metà degli

Подробнее

A. Ferrari Algoritmi notevoli

A. Ferrari Algoritmi notevoli Algoritmi notevoli in linguaggio C algoritmi o o o ricerca (verificare la presenza di un valore in un array) o o o ricerca sequenziale (array non ordinato) ricerca sequenziale (array ordinato) ricerca

Подробнее

Esercizi. Stringhe. Stringhe Ricerca binaria

Esercizi. Stringhe. Stringhe Ricerca binaria Politecnico di Milano Esercizi Stringhe Stringhe Array di caratteri Funzioni: strcpy() strcmp() strlen() char stringaa[10], stringab[10]; strcpy(stringaa, stringab); Copia if (strcmp(stringaa, stringab)

Подробнее

Fondamenti di Informatica

Fondamenti di Informatica Algoritmi di ordinamento Gli ordinamenti interni sono fatti su sequenze in memoria centrale Fondamenti di Informatica 18. Algoritmi di ordinamento in C++ Gli ordinamenti esterni sono fatti su sequenze

Подробнее

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli

Подробнее

Corso di Tecniche di Programmazione

Corso di Tecniche di Programmazione Problema: Data una sequenza di elementi in ordine qualsiasi, ordinarla. Corso di Tecniche di Programmazione Corsi di Laurea in Ingegneria Informatica ed Automatica Anno Accedemico 003/004 Proff. Giuseppe

Подробнее

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY)

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY) VARIABILI STRUTTURATE (ARRAY) 1 successione (di numeri reali): i ℵ a R i vettore (di numeri reali): i I a i R con I ℵ sottoinsieme finito ogni componente del vettore e univocamente determinata dall indice

Подробнее

Ordinamento di una lista: bubble-sort

Ordinamento di una lista: bubble-sort Ordinamento di una lista: bubble-sort L idea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate Ordinamento:

Подробнее

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI Informatica I dati strutturati: gli array I vettori (o Array) Fino a ora abbiamo memorizzato le informazioni (valori)

Подробнее

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

Подробнее

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità Laboratorio di Algoritmi e Strutture Dati Code con Priorità Teresa M.A. Basile [email protected] Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso

Подробнее

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare

Подробнее

RICERCA BINARIA...1 ALBERO BINARIO DI RICERCA (ABR)...3 RICORSIONE...4 ESEMPI DI RICORSIONE IN VISUAL BASIC...5 ESEMPI DI RICORSIONE IN C / C++...

RICERCA BINARIA...1 ALBERO BINARIO DI RICERCA (ABR)...3 RICORSIONE...4 ESEMPI DI RICORSIONE IN VISUAL BASIC...5 ESEMPI DI RICORSIONE IN C / C++... Tre piccioni con una fava: Ricerca Binaria, Albero Binario di Ricerca e Ricorsione prof. Claudio Maccherani - 2006 / 2007 foto Claudio Maccherani RICERCA BINARIA...1 ALBERO BINARIO DI RICERCA (ABR)...3

Подробнее

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Insertion Sort Quicksort Heapsort Indice

Подробнее

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ Heap e Heapsort Algoritmi di ordinamento Insertion Sort Quicksort Heapsort Insertion Sort L

Подробнее

Esercitazione 6. Array

Esercitazione 6. Array Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione

Подробнее

Esercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

Esercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Esercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 7, 2016 Liste trabocco (Separate Chaining) Esercizio 1 [Libro 7.5] Un dizionario è realizzato con liste di trabocco.

Подробнее

A. Ferrari. algoritmi notevoli. Python. Alberto Ferrari Informatica

A. Ferrari. algoritmi notevoli. Python. Alberto Ferrari Informatica algoritmi notevoli Python algoritmi o ricerca (verificare la presenza di un valore in una sequenza) o o o ricerca sequenziale (sequenza non ordinata) ricerca sequenziale (sequenza ordinata) ricerca binaria

Подробнее

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo del determinante Difficili Soluzione di sistemi lineari È veramente difficile? 1 Matrici.h

Подробнее

RICERCA IN UN VETTORE

RICERCA IN UN VETTORE RICERCA IN UN ETTORE La ricerca controlla se gli elementi di un vettore contengono un certo valore dato (detto anche chiave K) e comunica se l'elemento cercato esiste non esiste e nel caso che esista può

Подробнее

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:

Подробнее

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II

Подробнее