La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

AN Fondam98 Sorting Ricerca in un vettore ordinato.

Presentazioni simili


Presentazione sul tema: "AN Fondam98 Sorting Ricerca in un vettore ordinato."— Transcript della presentazione:

1 AN Fondam98 Sorting Ricerca in un vettore ordinato

2 AN Fondam98 Sorting int search( float[] a, int n, float x) Se x e contenuto nel vettore a di componenti di indice 0,...,n restituisce la posizione di x in a, altrimenti restituisce -1 return (n==0) ? ((a[n] ==x )?0:-1) : (a[n]==x )?n:search(a,n-1,x) Complessita computazionale: O(n)

3 AN Fondam98 Sorting Ricerca binaria Se x e contenuto nel vettore a di componenti di indice 0,...,n restituisce la posizione di x in a, altrimenti restituisce -1 return binSearch(a,0,n,x)

4 AN Fondam98 Sorting int binSearch(int[]a,int k,int n,int x){ //n indice ultima componente, k indice prima componente int m = (k+n)/2; if (m<n){ if (a[m]==x ) return m; else return (x<a[m]) ? binSearch(a,0,m-1,x) : binSearch(a,m+1,n,x) } else return -1;} Complessita computazionale: O(log 2 n)

5 AN Fondam98 Sorting Algoritmi di ordinamento

6 AN Fondam98 Sorting Lintestazione void sort( float[] a, int n ) modifica il vettore di ingresso a le cui componenti hanno indice 0,1,…,n ordinandolo in senso non decrescente float[] sort( float[] a, int n ) solo Java restituisce un vettore di n+1 componenti costituite dai valori ordinati di a, vettore di ingresso le cui componenti hanno indice 0,1,…,n

7 AN Fondam98 Sorting Naive sorting void sort( float[] a, int n ) u Se n=0 il vettore e gia ordinato u Se n>0, sia posMax lindice della componente che contiene il massimo. Il vettore ordinato si ottiene scambiando a[n] con a[posMax] e iterando il procedimento per il vettore costituito dalle componenti 1,…, n-1 Fondamenti 97

8 AN Fondam98 Sorting Naive sorting void naiveSort( float v[], int n ){ //n dimensione del vettore int iMax; while( n > 0 ){ iMax = detPosMax( v, n ); if( iMax != n ) swap( &v[iMax], &v[n-1] ); n--; }

9 AN Fondam98 Sorting Bubble sorting N. passi nel caso peggiore (vettore ordinato al contrario): (n-1) + (n-2) + … + 1 = n*(n-1)/2 N. passi nel caso migliore (vettore gia ordinato): (n-1) Complessita computazionale O(n 2 )

10 AN Fondam98 Sorting Bubble sorting void sort( float[] a, int n ) u Se n=0 il vettore e gia ordinato u Se n>0, il vettore ordinato si ottiene scambiando a[i] con a[i+1] se a[i]>a[i+1] per i=0,…,k essendo k lindice dellultima componente di a scambiata e iterando il procedimento per il vettore costituito dalle componenti 0,…,k

11 AN Fondam98 Sorting Bubble sorting Numero di passi: (n-1) + (n-2) + … + 1 = n*(n-1)/2 Complessita computazionale O(n 2 )


Scaricare ppt "AN Fondam98 Sorting Ricerca in un vettore ordinato."

Presentazioni simili


Annunci Google