Bubble Sort.

Slides:



Advertisements
Presentazioni simili
Primary Italian Saying How You Are.
Advertisements

Each student will be able to ask an adult or stranger: What do you like to do? and What dont you like to …?
© and ® 2011 Vista Higher Learning, Inc.4B.1-1 Punto di partenza Italian uses two principal tenses to talk about events in the past: the passato prossimo.
Il presente del congiuntivo (the present subjunctive)
Il presente del congiuntivo (the present subjunctive)
1 Capitolo 2: Semplificazione, Ottimizzazione e Implicazione.
TIPOLOGIA DELLE VARIABILI SPERIMENTALI: Variabili nominali Variabili quantali Variabili semi-quantitative Variabili quantitative.
BRISCOLA GO ON AVANTI. Storia I giochi di carte hanno le origini più disparate e vengono collocati in differenti epoche, la Briscola risale al La.
Le regole Giocatori: da 2 a 10, anche a coppie o a squadre Scopo del gioco: scartare tutte le carte per primi Si gioca con 108 carte: 18 carte.
Java Collections.
AN Fondam98 Sorting Ricerca in un vettore ordinato.
Guardate le seguenti due frasi:
I verbi regolari: -ire.
CANZONI, POESIE, FILASTROCCHE
Do we make merry? What do we celebrate ? Don t you know? …the United Europe!
Funzioni stringhe. chr Restituisce il carattere di un valore ascii dato. Per vedere lelenco dei codici ascii clicca QQQQ uuuu iiiiEsempio
Capitolo 15.I Comparativi Prof. Ugo Skubikowski Italian Department Middlebury College.
You’ve got a friend in me!
Passato Prossimo. What is it?  Passato Prossimo is a past tense and it is equivalent to our:  “ed” as in she studied  Or “has” + “ed” as in she has.
CESANELLA PRIMARY SCHOOL SENIGALLIA - ITALY PLAYGROUND GAMES ELASTIC -ELASTIC -ELASTIC -ELASTIC -ELASTIC - ELASTIC - ELASTIC - ELASTIC - ELASTIC - ELASTIC.
PUCCINI PRIMARY SCHOOL SENIGALLIA - ITALYGAMESHOPSCOTCH-HOPSCOTCH-HOPSCOTCH-HOPSCOTCH SETTIMANA - SETTIMANA - SETTIMANA - SETTIMANA Italian children are.
Il Futuro The Future Tense.
Da Fare Adesso: 1.Dove vai a provare l’abbigliamento quando sei al negozio? 2.Quando una donna va ad una festa elegante che cosa usa per mettere il rossetto?
EMINEM CINDERELLA MEN Cinderella man Send the fellow Shady dang came to wrap the game up in cellophane, Raise hell from hell he came, But didn't come.
I giorni della settimana
PINK FLOYD DOGS You gotta be crazy, you gotta have a real need. You gotta sleep on your toes. And when you're on the street. You gotta be able to pick.
Demonstrating Possession
Ontologia AA F. Orilia. Lez. 16 Discussione dell'approccio controfattualista di lewis condotta da Antonio De Grandis.
4/20/20151 Metodi formali dello sviluppo software a.a.2013/2014 Prof. Anna Labella.
MyEconLab_Univerità degli studi di Milano, corso Prof.ssa Valentina Raimondi How to Access MyEconLab 1.
Accoppiamento scalare
SUMMARY Time domain and frequency domain RIEPILOGO Dominio del tempo e della frequenza RIEPILOGO Dominio del tempo e della frequenza.
Each student will be able to ask an adult or stranger: What do you like to do? and What don’t you like to …?
SUMMARY Quadripoles and equivalent circuits RIEPILOGO Quadripoli e circuiti equivalenti RIEPILOGO Quadripoli e circuiti equivalenti.
MyEconLab_Univerità degli studi di Milano, corso Prof.ssa Valentina Raimondi How to Access MyEconLab 1.
L A R OUTINE D EL M ATTINO Ellie B.. Io mi sono svegliata alle cinque del mattino.
Summary Module 1 – Unit 1 (Current, potential difference, resistance) RIEPILOGO Modulo 1 – Unità 1 (Corrente, tensione, resistenza)
Relative pronouns Forms and uses. Relative pronouns Uses and functions of the relative CHI Translates he who, she who, those who, everybody who Does not.
SUMMARY Real operational amplifiers RIEPILOGO Amplificatori operazionali reali RIEPILOGO Amplificatori operazionali reali.
SUMMARY Interconnection of quadripoles RIEPILOGO Interconnessione di quadripoli RIEPILOGO Interconnessione di quadripoli.
6/11/01Ordinamento 1 Un esempio di algoritmi: ordinamento.
SI IMPERSONALE “One must pay attention if one wants to do well!”
Che ora è? Che ore sono? Telling time. Fate Adesso: If you were to stop someone on the street to ask the time how would you get their attention? If you.
Language of Algebra.
Language of Algebra. Basic concepts Key words Practice exercises Basic concepts Key words Practice exercises.
LE PREPOSIZIONI. Le Preposizioni semplici (Simple prepositions) A preposition describes a relationship between other words in a sentence. In itself, a.
It’s easy to know when we have to put emphasis on the last syllable of words with two or more syllables! These words have an accent on the last letter!
LE INDICAZIONI. CHIEDERE INFORMAZIONI E INDICAZIONI : ASKING FOR INFORMATION & DIRECTIONS.
MSc in Communication Sciences Program in Technologies for Human Communication Davide Eynard Facoltà di scienze della comunicazione Università della.
What time does the plane leave? At 12:45 1.
Angolo tra due rette e bisettrice
Organizzazione e Formazione per l’arresto cardiaco in ospedale Overview Epidemiologia dell’ arresto intraospedaliero Criticita’ organizzative Applicazioni.
Descrizione personale Gli obiettivi By the end of the lesson you will be able to: - describe yourself - describe other people.
Do You Want To Pass Actual Exam in 1 st Attempt?.
La Mise en Place.
Stima della qualità dei classificatori per l’ analisi dei dati biomolecolari Giorgio Valentini
Present progressive Past progressive verbs. Present progressive Present progressive: formula positive; subject + ___/___/___ + verb+ ing + complimentary.
Telling the time in Italian
L’orario – the time Anno 8.
Imparare i pronomi e il verbo essere
Highlights del meeting ESPP di Cracovia Settembre 2012 (FISICA DI G1)
Il Giorno del Ringraziamento
SICILY : EASTER IN AIDONE ‘FESTA DELLA RESURREZIONE’
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
Adolf Luther Born 1912 in Krefeld, Germany. Died 1990 Krefeld.
giovedì, 12 ottobre matrimonio o convivenza?
DORSET ITALIAN Level 4 week 3
Preliminary results of DESY drift chambers efficiency test
A comparison between day and night cosmic muons flux
TITLE [CENTURY GOTHIC, 35] TITLE [CENTURY GOTHIC, 35]
Transcript della presentazione:

Bubble Sort

Sorting - Ordinamento Sorting takes an unordered collection and makes it an ordered one. 1 2 3 4 5 6 77 42 35 12 101 5 1 2 3 4 5 6 5 12 35 42 77 101

"Bubbling Up" the Largest Element Traverse a collection of elements Move from the front to the end “Bubble” the largest value to the end using pair-wise comparisons and swapping (Scorrere l’elenco) (dal primo all’ultimo) (spingendo l’elemento più pesante verso il fondo usando confronti e scambi fra coppie ) 1 2 3 4 5 6 77 42 35 12 101 5

"Bubbling Up" the Largest Element Scorriamo l’elenco a partire dal primo fino all’ultimo Confrontiamo: ciascun elemento con il suo successore Se il successivo è minore => scambio! Swap 1 2 3 4 5 6 42 77 77 42 35 12 101 5

"Bubbling Up" the Largest Element Scorriamo l’elenco a partire dal primo fino all’ultimo Confrontiamo: ciascun elemento con il suo successore Se il successivo è minore => scambio! 1 2 3 4 5 6 Swap 35 77 42 77 35 12 101 5

"Bubbling Up" the Largest Element Scorriamo l’elenco a partire dal primo fino all’ultimo Confrontiamo: ciascun elemento con il suo successore Se il successivo è minore => scambio! 1 2 3 4 5 6 Swap 12 77 42 35 77 12 101 5

"Bubbling Up" the Largest Element Scorriamo l’elenco a partire dal primo fino all’ultimo Confrontiamo: ciascun elemento con il suo successore Se il successivo è minore => scambio! 1 2 3 4 5 6 42 35 12 77 101 5 No need to swap

"Bubbling Up" the Largest Element Scorriamo l’elenco a partire dal primo fino all’ultimo Confrontiamo: ciascun elemento con il suo successore Se il successivo è minore => scambio! 1 2 3 4 5 6 Swap 5 101 42 35 12 77 101 5

"Bubbling Up" the Largest Element Scorriamo l’elenco a partire dal primo fino all’ultimo Confrontiamo: ciascun elemento con il suo successore Se il successivo è minore => scambio! 1 2 3 4 5 6 101 42 35 12 77 5 Largest value correctly placed

Items of Interest Soltanto il valore maggiore è al posto giusto Tutti gli altri sono fuori posto E’ necessario ripetere il processo 1 2 3 4 5 6 101 42 35 12 77 5 Largest value correctly placed

Repeat “Bubble Up” How Many Times? Se abbiamo N elementi… E ad ogni iterazione posizioniamo correttamente un elemento… Allora ripetiamo il processo di “bubble up” process N – 1 volte.

“Bubbling” All the Elements 77 12 35 42 5 1 2 3 4 5 6 101 N - 1 5 42 12 35 77 1 2 3 4 5 6 101 42 5 35 12 77 1 2 3 4 5 6 101 42 35 5 12 77 1 2 3 4 5 6 101 42 35 12 5 77 1 2 3 4 5 6 101

Reducing the Number of Comparisons 12 35 42 77 101 1 2 3 4 5 6 5 77 12 35 42 5 1 2 3 4 5 6 101 5 42 12 35 77 1 2 3 4 5 6 101 42 5 35 12 77 1 2 3 4 5 6 101 42 35 5 12 77 1 2 3 4 5 6 101

Reducing the Number of Comparisons Alla J-esima iterazione di “bubble up”, è necessario fare soltanto N-J confronti. Ad esempio: Alla quarta iterazione (J=4) N è 6 Dobbiamo fare soltanto 2 confronti 42 5 35 12 77 1 2 3 4 5 6 101

Already Sorted Collections? Che succede se la sequenza è già ordinata? Che cosa succede se soltanto alcune coppie sono fuori posto e dopo qualche giro l’elenco è già ordinato? Vogliamo accorgerci che la sequenza è già ordinata e fermarci! 42 35 12 5 77 1 2 3 4 5 6 101

Using a Boolean “Flag” Una variabile booleana (Flag): durante un’iterazione di “bubble up” abbiamo fatto uno scambio (oppure no) Se non ci sono stati scambi: La sequenza è già ordinata! La variabile “Flag” va re-impostata ad ogni nuova iterazione!

An Animated Example N 8 did_swap true to_do 7 index 98 23 45 14 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap false to_do 7 index 1 98 23 45 14 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap false to_do 7 index 1 Swap 98 23 45 14 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 1 Swap 23 98 45 14 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 2 23 98 45 14 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 2 Swap 23 98 45 14 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 2 Swap 23 45 98 14 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 3 23 45 98 14 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 3 Swap 23 45 98 14 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 3 Swap 23 45 14 98 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 4 23 45 14 98 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 4 Swap 23 45 14 98 6 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 4 Swap 23 45 14 6 98 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 5 23 45 14 6 98 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 5 Swap 23 45 14 6 98 67 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 5 Swap 23 45 14 6 67 98 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 6 23 45 14 6 67 98 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 6 Swap 23 45 14 6 67 98 33 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 6 Swap 23 45 14 6 67 33 98 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 7 23 45 14 6 67 33 98 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 7 Swap 23 45 14 6 67 33 98 42 1 2 3 4 5 6 7 8

An Animated Example N 8 did_swap true to_do 7 index 7 Swap 23 45 14 6 67 33 42 98 1 2 3 4 5 6 7 8

After First Pass of Outer Loop N 8 did_swap true to_do 7 Finished first “Bubble Up” index 8 23 45 14 6 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap false to_do 6 index 1 23 45 14 6 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap false to_do 6 index 1 No Swap 23 45 14 6 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap false to_do 6 index 2 23 45 14 6 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap false to_do 6 index 2 Swap 23 45 14 6 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 2 Swap 23 14 45 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 3 23 14 45 6 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 3 Swap 23 14 45 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 3 Swap 23 14 6 45 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 4 23 14 6 45 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 4 No Swap 23 14 45 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 5 23 14 6 45 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 5 Swap 23 14 6 45 67 33 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 5 Swap 23 14 6 45 33 67 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 6 23 14 6 45 33 67 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 6 Swap 23 14 6 45 33 67 42 98 1 2 3 4 5 6 7 8

The Second “Bubble Up” N 8 did_swap true to_do 6 index 6 Swap 23 14 6 45 33 42 67 98 1 2 3 4 5 6 7 8

After Second Pass of Outer Loop 8 did_swap true to_do 6 Finished second “Bubble Up” index 7 23 14 6 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap false to_do 5 index 1 23 14 6 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap false to_do 5 index 1 Swap 23 14 6 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 1 Swap 14 23 6 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 2 14 23 6 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 2 Swap 14 23 6 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 2 Swap 14 6 23 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 3 14 6 23 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 3 No Swap 14 6 23 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 4 14 6 23 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 4 Swap 14 6 23 45 33 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 4 Swap 14 6 23 33 45 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 5 14 6 23 33 45 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 5 Swap 14 6 23 33 45 42 67 98 1 2 3 4 5 6 7 8

The Third “Bubble Up” N 8 did_swap true to_do 5 index 5 Swap 14 6 23 33 42 45 67 98 1 2 3 4 5 6 7 8

After Third Pass of Outer Loop N 8 did_swap true to_do 5 Finished third “Bubble Up” index 6 14 6 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fourth “Bubble Up” N 8 did_swap false to_do 4 index 1 14 6 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fourth “Bubble Up” N 8 did_swap false to_do 4 index 1 Swap 14 6 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fourth “Bubble Up” N 8 did_swap true to_do 4 index 1 Swap 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fourth “Bubble Up” N 8 did_swap true to_do 4 index 2 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fourth “Bubble Up” N 8 did_swap true to_do 4 index 2 No Swap 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fourth “Bubble Up” N 8 did_swap true to_do 4 index 3 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fourth “Bubble Up” N 8 did_swap true to_do 4 index 3 No Swap 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fourth “Bubble Up” N 8 did_swap true to_do 4 index 4 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fourth “Bubble Up” N 8 did_swap true to_do 4 index 4 No Swap 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

After Fourth Pass of Outer Loop N 8 did_swap true to_do 4 Finished fourth “Bubble Up” index 5 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fifth “Bubble Up” N 8 did_swap false to_do 3 index 1 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fifth “Bubble Up” N 8 did_swap false to_do 3 index 1 No Swap 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fifth “Bubble Up” N 8 did_swap false to_do 3 index 2 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fifth “Bubble Up” N 8 did_swap false to_do 3 index 2 No Swap 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fifth “Bubble Up” N 8 did_swap false to_do 3 index 3 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

The Fifth “Bubble Up” N 8 did_swap false to_do 3 index 3 No Swap 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

After Fifth Pass of Outer Loop N 8 did_swap false to_do 3 Finished fifth “Bubble Up” index 4 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

Finished “Early” N 8 did_swap false to_do 3 We didn’t do any swapping, so all of the other elements must be correctly placed. We can “skip” the last two passes of the outer loop. index 4 6 14 23 33 42 45 67 98 1 2 3 4 5 6 7 8

Summary “Bubble Up” algorithm will move largest value to its correct location (to the right) Repeat “Bubble Up” until all elements are correctly placed: Maximum of N-1 times Can finish early if no swapping occurs We reduce the number of elements we compare each time one is correctly placed