La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Bubble Sort.

Presentazioni simili


Presentazione sul tema: "Bubble Sort."— Transcript della presentazione:

1 Bubble Sort

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

3 "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 ) 77 42 35 12 101 5

4 "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 42 77 77 42 35 12 101 5

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 35 77 42 77 35 12 101 5

6 "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 12 77 42 35 77 12 101 5

7 "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! 42 35 12 77 101 5 No need to swap

8 "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 5 101 42 35 12 77 101 5

9 "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! 101 42 35 12 77 5 Largest value correctly placed

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

11 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.

12 “Bubbling” All the Elements
77 12 35 42 5 101 N - 1 5 42 12 35 77 101 42 5 35 12 77 101 42 35 5 12 77 101 42 35 12 5 77 101

13 Reducing the Number of Comparisons
12 35 42 77 101 5 77 12 35 42 5 101 5 42 12 35 77 101 42 5 35 12 77 101 42 35 5 12 77 101

14 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 101

15 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 101

16 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!

17 An Animated Example N 8 did_swap true to_do 7 index 98 23 45 14 6 67
33 42

18 An Animated Example N 8 did_swap false to_do 7 index 1 98 23 45 14 6
67 33 42

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

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

21 An Animated Example N 8 did_swap true to_do 7 index 2 23 98 45 14 6 67
33 42

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

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

24 An Animated Example N 8 did_swap true to_do 7 index 3 23 45 98 14 6 67
33 42

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

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

27 An Animated Example N 8 did_swap true to_do 7 index 4 23 45 14 98 6 67
33 42

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

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

30 An Animated Example N 8 did_swap true to_do 7 index 5 23 45 14 6 98 67
33 42

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

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

33 An Animated Example N 8 did_swap true to_do 7 index 6 23 45 14 6 67 98
33 42

34 An Animated Example N 8 did_swap true to_do 7 index 6 Swap 23 45 14 6
67 98 33 42

35 An Animated Example N 8 did_swap true to_do 7 index 6 Swap 23 45 14 6
67 33 98 42

36 An Animated Example N 8 did_swap true to_do 7 index 7 23 45 14 6 67 33
98 42

37 An Animated Example N 8 did_swap true to_do 7 index 7 Swap 23 45 14 6
67 33 98 42

38 An Animated Example N 8 did_swap true to_do 7 index 7 Swap 23 45 14 6
67 33 42 98

39 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

40 The Second “Bubble Up” N 8 did_swap false to_do 6 index 1 23 45 14 6
67 33 42 98

41 The Second “Bubble Up” N 8 did_swap false to_do 6 index 1 No Swap 23
45 14 6 67 33 42 98

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

43 The Second “Bubble Up” N 8 did_swap false to_do 6 index 2 Swap 23 45
14 6 67 33 42 98

44 The Second “Bubble Up” N 8 did_swap true to_do 6 index 2 Swap 23 14 45
67 33 42 98

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

46 The Second “Bubble Up” N 8 did_swap true to_do 6 index 3 Swap 23 14 45
67 33 42 98

47 The Second “Bubble Up” N 8 did_swap true to_do 6 index 3 Swap 23 14 6
45 67 33 42 98

48 The Second “Bubble Up” N 8 did_swap true to_do 6 index 4 23 14 6 45 67
33 42 98

49 The Second “Bubble Up” N 8 did_swap true to_do 6 index 4 No Swap 23 14
45 67 33 42 98

50 The Second “Bubble Up” N 8 did_swap true to_do 6 index 5 23 14 6 45 67
33 42 98

51 The Second “Bubble Up” N 8 did_swap true to_do 6 index 5 Swap 23 14 6
45 67 33 42 98

52 The Second “Bubble Up” N 8 did_swap true to_do 6 index 5 Swap 23 14 6
45 33 67 42 98

53 The Second “Bubble Up” N 8 did_swap true to_do 6 index 6 23 14 6 45 33
67 42 98

54 The Second “Bubble Up” N 8 did_swap true to_do 6 index 6 Swap 23 14 6
45 33 67 42 98

55 The Second “Bubble Up” N 8 did_swap true to_do 6 index 6 Swap 23 14 6
45 33 42 67 98

56 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

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

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

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

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

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

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

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

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

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

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

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

68 The Third “Bubble Up” N 8 did_swap true to_do 5 index 5 14 6 23 33 45
42 67 98

69 The Third “Bubble Up” N 8 did_swap true to_do 5 index 5 Swap 14 6 23
33 45 42 67 98

70 The Third “Bubble Up” N 8 did_swap true to_do 5 index 5 Swap 14 6 23
33 42 45 67 98

71 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

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

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

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

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

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

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

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

79 The Fourth “Bubble Up” N 8 did_swap true to_do 4 index 4 6 14 23 33 42
45 67 98

80 The Fourth “Bubble Up” N 8 did_swap true to_do 4 index 4 No Swap 6 14
23 33 42 45 67 98

81 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

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

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

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

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

86 The Fifth “Bubble Up” N 8 did_swap false to_do 3 index 3 6 14 23 33 42
45 67 98

87 The Fifth “Bubble Up” N 8 did_swap false to_do 3 index 3 No Swap 6 14
23 33 42 45 67 98

88 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

89 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

90 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


Scaricare ppt "Bubble Sort."

Presentazioni simili


Annunci Google