SlideShare une entreprise Scribd logo
1  sur  8
Selection Sort Vesce, Toska,
Gizaw, Iezzi​ A.S. 2022/2023
Che
cos’è
un
algoritmo?
A . S . 2 0 2 2 / 2 0 2 3 2
Il concetto di algoritmo ha origini millenarie,
ma il suo potenziale si è scatenato quando ha
incontrato l'informatica e l'automazione.
Un algoritmo è un insieme finito di istruzioni
che, dato un insieme di condizioni iniziali, può
essere eseguito secondo una sequenza prescritta
per raggiungere un determinato obiettivo e che
ha un insieme riconoscibile di condizioni finali.
V E S C E , T O S K A , G I Z A W , I E Z Z I
Gli algoritmi
di tipo sort
Questi algoritmi sono una serie
di istruzioni che prendono come
input un array o una lista e ne
riordina gli elementi seguendo
un preciso ordine. I più comuni
sono: Selection sort, Bubble
sort e Insertion sort
A . S . 2 0 2 2 / 2 0 2 3
V E S C E , T O S K A , G I Z AW , I E Z Z I ​ 3
A . S . 2 0 2 2 / 2 0 2 3
L’algoritmo lavora dividendo in due
sotto vettori il vettore da ordinare:
il primo è ordinato (parte bassa del
vettore) il secondo è disordinato
(parte alta del vettore). La strategia
è quella di individuare nel sotto
vettore disordinato il minimo
rispetto alla posizione che si deve
ordinare, cioè la prima cella del
vettore disordinato.
V E S C E , T O S K A , G I Z A W , I E Z Z I 4
In cosa consiste il
selection sort?
A . S . 2 0 2 2 / 2 0 2 3
All’inizio esisterà il solo sotto vettore
disordinato, si parte con un indice i=0
che rappresenta il primo elemento in
cui si deve inserire il valore minimo
tra il valore presente nella cella i=0 e
i valori presenti nel sotto vettore che
va da j=i+1 a n-1. Per fare questo
occorrono pertanto due cicli:
1. l primo ciclo, quello sull’indice i,
parte da zero e si ferma a n-2 (cioè
i < n-1), in cui l’elemento in
posizione i rappresenta la posizione
da ordinare.
2. il secondo ciclo serve a determinare
la posizione del minimo e parte da
j=i+1 e si ferma a n-1 (cioè j<n).
V E S C E , T O S K A , G I Z A W , I E Z Z I 5
Come funziona
A . S . 2 0 2 2 / 2 0 2 3
A differenza degli altri
algoritmi di tipo sort, il
tempo di esecuzione di
questo algoritmo non dipende
dall’input, bensì dalla
dimensione dell’array
V E S C E , T O S K A , G I Z A W , I E Z Z I 6
La sua complessità
computazionale
Per calcolare la complessità osserviamo che si
devono sommare tutte le iterazioni fatte, cioè
1 + 2 + 3 + … + n-3 + n-2 + n-1
Ma ricordando che la somma dei
primi n numeri naturali è n*(n+1)/2, cioè
1 + 2 + 3 + … n-3 + n-2 + n-1 + n = n*(n+1)/2
Dovendo calcolare la somma fino al termine n-
1, portando la n al secondo membro si ricava
che
1 + 2 + 3 + … n-3 + n-2 + n-1 = n*(n+1)/2 – n =
n*(n-1)/2
Quindi la complessità è O(n^2)
A . S . 2 0 2 2 / 2 0 2 3 V E S C E , T O S K A , G I Z A W , I E Z Z I 7
La sua
particolarità
Assieme all’insertion sort e al bubble
sort, il selection sort è un algoritmo
di tipo quadratico, ma a differenza
degli altri in quest’ultimo il caso
ottimo e il caso peggiore coincidono,
la sua complessità è infatti sempre
O(n^2)
0 5 / 0 8 / 2 0 X X V E S C E , T O S K A , G I Z A W , I E Z Z I 8
Grazie per
l’attenzione.

Contenu connexe

Plus de ManuelIezzi

PRESENTAZION_ PERCORSI_PCTO_IezziManuel5G.pptx
PRESENTAZION_ PERCORSI_PCTO_IezziManuel5G.pptxPRESENTAZION_ PERCORSI_PCTO_IezziManuel5G.pptx
PRESENTAZION_ PERCORSI_PCTO_IezziManuel5G.pptxManuelIezzi
 
arte nouveau klimt matisse.docx
arte nouveau klimt matisse.docxarte nouveau klimt matisse.docx
arte nouveau klimt matisse.docxManuelIezzi
 
da Pascoli a Pirandello.docx
da Pascoli a Pirandello.docxda Pascoli a Pirandello.docx
da Pascoli a Pirandello.docxManuelIezzi
 
effetto fotoelettrico (1).docx
effetto fotoelettrico (1).docxeffetto fotoelettrico (1).docx
effetto fotoelettrico (1).docxManuelIezzi
 
Complessità_computazionale (2).pptx
Complessità_computazionale (2).pptxComplessità_computazionale (2).pptx
Complessità_computazionale (2).pptxManuelIezzi
 
Genetica batterica e virale.docx
Genetica batterica e virale.docxGenetica batterica e virale.docx
Genetica batterica e virale.docxManuelIezzi
 
complessità_computazionale.pptx
complessità_computazionale.pptxcomplessità_computazionale.pptx
complessità_computazionale.pptxManuelIezzi
 

Plus de ManuelIezzi (10)

PRESENTAZION_ PERCORSI_PCTO_IezziManuel5G.pptx
PRESENTAZION_ PERCORSI_PCTO_IezziManuel5G.pptxPRESENTAZION_ PERCORSI_PCTO_IezziManuel5G.pptx
PRESENTAZION_ PERCORSI_PCTO_IezziManuel5G.pptx
 
arte nouveau klimt matisse.docx
arte nouveau klimt matisse.docxarte nouveau klimt matisse.docx
arte nouveau klimt matisse.docx
 
storia (1).docx
storia (1).docxstoria (1).docx
storia (1).docx
 
da Pascoli a Pirandello.docx
da Pascoli a Pirandello.docxda Pascoli a Pirandello.docx
da Pascoli a Pirandello.docx
 
effetto fotoelettrico (1).docx
effetto fotoelettrico (1).docxeffetto fotoelettrico (1).docx
effetto fotoelettrico (1).docx
 
Complessità_computazionale (2).pptx
Complessità_computazionale (2).pptxComplessità_computazionale (2).pptx
Complessità_computazionale (2).pptx
 
Genetica batterica e virale.docx
Genetica batterica e virale.docxGenetica batterica e virale.docx
Genetica batterica e virale.docx
 
Marx.docx
Marx.docxMarx.docx
Marx.docx
 
Corpo nero.docx
Corpo nero.docxCorpo nero.docx
Corpo nero.docx
 
complessità_computazionale.pptx
complessità_computazionale.pptxcomplessità_computazionale.pptx
complessità_computazionale.pptx
 

Costo_algoritmo.pptx

  • 1. Selection Sort Vesce, Toska, Gizaw, Iezzi​ A.S. 2022/2023
  • 2. Che cos’è un algoritmo? A . S . 2 0 2 2 / 2 0 2 3 2 Il concetto di algoritmo ha origini millenarie, ma il suo potenziale si è scatenato quando ha incontrato l'informatica e l'automazione. Un algoritmo è un insieme finito di istruzioni che, dato un insieme di condizioni iniziali, può essere eseguito secondo una sequenza prescritta per raggiungere un determinato obiettivo e che ha un insieme riconoscibile di condizioni finali. V E S C E , T O S K A , G I Z A W , I E Z Z I
  • 3. Gli algoritmi di tipo sort Questi algoritmi sono una serie di istruzioni che prendono come input un array o una lista e ne riordina gli elementi seguendo un preciso ordine. I più comuni sono: Selection sort, Bubble sort e Insertion sort A . S . 2 0 2 2 / 2 0 2 3 V E S C E , T O S K A , G I Z AW , I E Z Z I ​ 3
  • 4. A . S . 2 0 2 2 / 2 0 2 3 L’algoritmo lavora dividendo in due sotto vettori il vettore da ordinare: il primo è ordinato (parte bassa del vettore) il secondo è disordinato (parte alta del vettore). La strategia è quella di individuare nel sotto vettore disordinato il minimo rispetto alla posizione che si deve ordinare, cioè la prima cella del vettore disordinato. V E S C E , T O S K A , G I Z A W , I E Z Z I 4 In cosa consiste il selection sort?
  • 5. A . S . 2 0 2 2 / 2 0 2 3 All’inizio esisterà il solo sotto vettore disordinato, si parte con un indice i=0 che rappresenta il primo elemento in cui si deve inserire il valore minimo tra il valore presente nella cella i=0 e i valori presenti nel sotto vettore che va da j=i+1 a n-1. Per fare questo occorrono pertanto due cicli: 1. l primo ciclo, quello sull’indice i, parte da zero e si ferma a n-2 (cioè i < n-1), in cui l’elemento in posizione i rappresenta la posizione da ordinare. 2. il secondo ciclo serve a determinare la posizione del minimo e parte da j=i+1 e si ferma a n-1 (cioè j<n). V E S C E , T O S K A , G I Z A W , I E Z Z I 5 Come funziona
  • 6. A . S . 2 0 2 2 / 2 0 2 3 A differenza degli altri algoritmi di tipo sort, il tempo di esecuzione di questo algoritmo non dipende dall’input, bensì dalla dimensione dell’array V E S C E , T O S K A , G I Z A W , I E Z Z I 6 La sua complessità computazionale Per calcolare la complessità osserviamo che si devono sommare tutte le iterazioni fatte, cioè 1 + 2 + 3 + … + n-3 + n-2 + n-1 Ma ricordando che la somma dei primi n numeri naturali è n*(n+1)/2, cioè 1 + 2 + 3 + … n-3 + n-2 + n-1 + n = n*(n+1)/2 Dovendo calcolare la somma fino al termine n- 1, portando la n al secondo membro si ricava che 1 + 2 + 3 + … n-3 + n-2 + n-1 = n*(n+1)/2 – n = n*(n-1)/2 Quindi la complessità è O(n^2)
  • 7. A . S . 2 0 2 2 / 2 0 2 3 V E S C E , T O S K A , G I Z A W , I E Z Z I 7 La sua particolarità Assieme all’insertion sort e al bubble sort, il selection sort è un algoritmo di tipo quadratico, ma a differenza degli altri in quest’ultimo il caso ottimo e il caso peggiore coincidono, la sua complessità è infatti sempre O(n^2)
  • 8. 0 5 / 0 8 / 2 0 X X V E S C E , T O S K A , G I Z A W , I E Z Z I 8 Grazie per l’attenzione.