L’ordinamento per Selezione seleziona l’elemento con valore maggiore e lo scambia con il primo elemento del vettore. Tra gli N-1 elementi rimanenti viene.

Slides:



Advertisements
Presentazioni simili
C++ Di Marco Cozzani.
Advertisements

Gli Algoritmi di ordinamento
INFORMATICA Algoritmi fondamentali
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Corso di Laurea Triennale in Ingegneria Gestionale Corso di Fondamenti di informatica A. A A.Pinto Algoritmi di ricerca 1.
Uso avanzato di C.
Iterazione while – do while - for.
Iterazione A. Ferrari.
Unità G3 Algoritmi notevoli. Ordinamento Un insieme di dati {a0, a1, a2, …, an} si dice ordinato in ordine crescente se a0 a1 a2 a3 … an I dati sono generalmente.
Stringhe di caratteri In linguaggio C.
Algoritmi notevoli.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Ripasso R1 Dati strutturati.
Algoritmi notevoli In linguaggio C.
Linguaggio C++ Operatori – numeri pseudocasuali - costanti.
Array (vettori) In linguaggio C / C++.
Numeri casuali.
Introduzione ad Array e Funzioni 2IC/2ID – a. s.2012/13.
Generazione di numeri casuali in Dev C++
Sviluppo di programmi strutturati
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F3 Iterazione.
Le funzioni.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
PROGRAMMI DI RICERCA E ORDINAMENTO
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)
1 Corso di Informatica (Programmazione) Esercitazione 2 (3 dicembre 2008)
CORSO DI PROGRAMMAZIONE II
e array a più dimensioni
Ordinamento di una lista: bubble-sort
Array Un array è una collezione in sequenza di variabili del medesimo tipo Riferimento con un nome comune Nome_studente1 Nome_studente2. Nome_studenteN.
Esercizi su code Date due code in ingresso a valori interi in ordine crescente, scrivere una funzione che restituisca una terza coda che contenga i valori.
Strutture di controllo nel C
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Esercizi C su array e matrici
Problema Ci sono 5 signore nel parco. Ognuna di loro ha 1 figlio. Ogni bambino ha 10 figurine di calciatori, per un totale quindi di 50 figurine. Questi.
Problema dell’ordinamento di un array: Il metodo Bubble Sort.
1.Scrivere una funzione per cercare un numero x in una lista circolare di interi. La funzione deve restituire NULL se il numero non esiste. 2.Scrivere.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
void binario(int n); …………………
Creazione progetto in C++/DEV
Esercizi su File.
Definizione di un algoritmo
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
ALGORITMO Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un formalismo che permette di rappresentare.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Algoritmi e Strutture Dati
Procedure e funzioni In linguaggio C.
Lo strano mondo degli algoritmi di ordinamento Algoritmi.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Ordinamento dei vettori (SELECTION-SORT) Ordinamento per selezione (selection- sort) Si cerca l’elemento più piccolo e si scambia con l’elemento in posizione.
C++:Strutture di Controllo
Copyright © Istituto Italiano Edizioni Atlas
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.
L’ALGORITMO Un algoritmo è un procedimento formale che risolve un determinato problema attraverso un numero finito di passi. Un problema risolvibile mediante.
6/11/01Ordinamento 1 Un esempio di algoritmi: ordinamento.
Ordinamento. Introduzione Una delle operazioni che si possono eseguire sui vettori, è quella di ordinare gli elementi del vettore in ordine crescente.
8. Problemi ricorrenti: ordinamento e ricerca Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Cicli e Array. 2 Costrutto while while(espressione) { … } Il codice dentro le parentesi graffe viene eseguito finché la condizione è vera Potrebbe non.
Operatori – numeri pseudocasuali - costanti
Passaggio di parametri per indirizzo
Transcript della presentazione:

L’ordinamento per Selezione seleziona l’elemento con valore maggiore e lo scambia con il primo elemento del vettore. Tra gli N-1 elementi rimanenti viene poi ricercato nuovamente quello maggiore e scambiato con il secondo e così via fino all’ultimo elemento. Obiettivo:ottenere un insieme di elementi,ordinato in maniera decrescente

56382 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

56382 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=0

56382 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=1 A[0]<A[1] scambio

65382 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=1 A[0]<A[1] scambio

65382 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=2 A[0]>A[2] No scambio

65382 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=3 A[0]>A[3] scambio

85362 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=3 A[0]>A[3] scambio

85362 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=4 A[0]<A[4] No scambio

85362 I passi da seguire sono i seguenti : 1)Posizionamento sul secondo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il secondo elemento dell’array Indice1=1 Indice2=1 A[1]=A[1] No scambio

85362 I passi da seguire sono i seguenti : 1)Posizionamento sul secondo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il secondo elemento dell’array Indice1=1 Indice2=2 A[1]>A[2] No scambio

85362 I passi da seguire sono i seguenti : 1)Posizionamento sul secondo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il secondo elemento dell’array Indice1=1 Indice2=3 A[1]<A[3] scambio

86352 I passi da seguire sono i seguenti : 1)Posizionamento sul secondo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il secondo elemento dell’array Indice1=1 Indice2=3 A[1]<A[3] scambio

86352 I passi da seguire sono i seguenti : 1)Posizionamento sul secondo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il secondo elemento dell’array Indice1=1 Indice2=4 A[1]>A[4] No scambio

86352 I passi da seguire sono i seguenti : 1)Posizionamento sul terzo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il terzo elemento dell’array Indice1=2 Indice2=2 A[2]=A[2] No scambio

86352 I passi da seguire sono i seguenti : 1)Posizionamento sul terzo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il terzo elemento dell’array Indice1=2 Indice2=3 A[2]<A[3] scambio

86532 I passi da seguire sono i seguenti : 1)Posizionamento sul terzo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il terzo elemento dell’array Indice1=2 Indice2=3 A[2]<A[3] scambio

86532 I passi da seguire sono i seguenti : 1)Posizionamento sul terzo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il terzo elemento dell’array Indice1=2 Indice2=4 A[2]>A[4] No scambio

86532 I passi da seguire sono i seguenti : 1)Posizionamento sul quarto elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il quarto elemento dell’array Indice1=3 Indice2=3 A[3]=A[3] No scambio

86532 I passi da seguire sono i seguenti : 1)Posizionamento sul quarto elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il quarto elemento dell’array Indice1=3 Indice2=4 A[3]>A[4] No scambio

#include Using namespace std; int x,N=5,temp; int V[N]; main() { for (int i=0;i<N;i++) // inserimento del vettore { cout<<"Inserire l'elemento: "<<i+1<<" "; cin>>V[i]; }

for (int i=0;i<N-1;i++) // dal primo al 5° elemento { x = i+1; do { if (V[ i ] <[ i+1 ]) { // effettuare scambio degli elementi temp = V[ i ]; V[ i ] = V[ x ]; V[ x ] = temp; } x++; } while( x < N ); } // visualizzazione del vettore ordinato mediante l'algoritmo cout<<"Il vettore ordinato e\' il seguente : "<<endl; for (int i=0;i<N;i++) cout<<V[i]<<endl; } // chiude il main Con FOR e WHILE

for (int i=0;i<N-1;i++) // dal primo al 5° elemento { for (int x=i+1;x<N;x++) // dal secondo al 6° elemento { if (V[ i ] <[ x ]) { // effettuare scambio degli elementi temp = V[ i ]; V[ i ] = V[ x ]; V[ x ] = temp; } // visualizzazione del vettore ordinato mediante l'algoritmo cout<<"Il vettore ordinato e\' il seguente : "<<endl; for (int i=0;i<N;i++) cout<<V[i]<<endl; } // chiude il main Con 2 cicli FOR annidati