Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
T[idx]<->T[idx+1]
Bubble sort START Stan początkowy Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Idx++ Len-- Idx>=Len Len<=1 F STOP T F T
2
T[idx]<->T[idx+1]
Bubble sort START START Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Idx++ Len-- Idx>=Len Len<=1 F STOP F T T
3
T[idx]<->T[idx+1]
Bubble sort START Przygotowanie do pracy – zakładamy, że cała tablica jest nieposortowana Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len F T Len<=1 F STOP T
4
T[idx]<->T[idx+1]
Bubble sort START Zaczynając od pierwszego elementu: Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T
5
T[idx]<->T[idx+1]
Bubble sort Porównujemy w parach. Teza warunku: „Wyższy element większy od niższego” START Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T
6
T[idx]<->T[idx+1]
Bubble sort START Fałsz – para jest wstępnie uporządkowana Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T
7
T[idx]<->T[idx+1]
Bubble sort START Fałsz- omija procedurę wymiany Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T
8
T[idx]<->T[idx+1]
Bubble sort START Przejdź do następnych elementów Len=9 T: 2 3 5 1 8 9 6 7 4 idx=2 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Iidx =2 Len<=1 F STOP F T T
9
T[idx]<->T[idx+1]
Bubble sort START Teza:”Osiągnął koniec” Len=9 T: 2 3 5 1 8 9 6 7 4 idx=2 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=2 Len=9
10
T[idx]<->T[idx+1]
Bubble sort Fałsz-to jeszcze nie koniec nieposortowanej części – pętla działa dalej START Len=9 T: 2 3 5 1 8 9 6 7 4 idx=2 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=2 Len=9
11
T[idx]<->T[idx+1]
Bubble sort START Teza:”Wyższy element większy od niższego” Len=9 T: 2 3 5 1 8 9 6 7 4 idx=2 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=2 Len=9
12
T[idx]<->T[idx+1]
Bubble sort START Fałsz – elementy są w dobrym porządku- sterowanie przechodzi dalej Len=9 T: 2 3 5 1 8 9 6 7 4 idx=2 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T
13
T[idx]<->T[idx+1]
Bubble sort START Przejdź do następnych elementów T: 2 3 5 1 8 9 6 7 4 Len=9 idx=1 idx=3 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len iIdx =3 Len<=1 F STOP F T T
14
T[idx]<->T[idx+1]
Bubble sort START Teza:”Osiągnął koniec” Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 idx=3 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=3 Len=9
15
T[idx]<->T[idx+1]
Bubble sort START Fałsz – pętla działa dalej Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 idx=3 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=3 Len=9
16
T[idx]<->T[idx+1]
Bubble sort START Teza:”Wyższy element większy od niższego” Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 idx=3 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=3 Len=9
17
T[idx]<->T[idx+1]
Bubble sort START Prawda – będzie przestawienie Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 idx=3 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=3 Len=9
18
T[idx]<->T[idx+1]
Bubble sort START Przestawienie Len=9 T: 2 3 5 1 8 9 6 7 4 idx=1 idx=3 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Len=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=3 Len=9
19
T[idx]<->T[idx+1]
Bubble sort START Kolejna para do analizy Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 idx=4 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP F T T idx=4 Len=9
20
T[idx]<->T[idx+1]
Bubble sort START Jeszcze jest kilka elementów do przeglądnięcia Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 idx=4 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP F T T idx=4 Len=9
21
T[idx]<->T[idx+1]
Bubble sort START Warunek jest fałszywy – jeszcze nie doszedł do końca części nieuporządkowanej. Pętla trwa dalej. Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 idx=4 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP F T T idx=4 Len=9
22
T[idx]<->T[idx+1]
Bubble sort START Następuje kolejne sprawdzenie porządku w parze dwuelementowej. Para jest wstępnie uporzadkowana. Nie nastąpi przestawienie. Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 idx=4 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP F T T idx=4 Len=9
23
T[idx]<->T[idx+1]
Bubble sort START Następna para. Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 T[idx]<->T[idx+1] idx=5 T[idx]>T[idx+1] T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP F T T idx=5 Len=9
24
T[idx]<->T[idx+1]
Bubble sort START Teza: „Doszedł do końca” - jest fałszywa. Zabawa trwa dalej. Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 T[idx]<->T[idx+1] idx=5 T[idx]>T[idx+1] T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP F T T idx=5 Len=9
25
T[idx]<->T[idx+1]
Bubble sort START Para jest uporządkowana – nie będzie przestawienia. Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 T[idx]<->T[idx+1] idx=5 T[idx]>T[idx+1] T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP F T T idx=5 Len=9
26
T[idx]<->T[idx+1]
Bubble sort START Teraz opracowywana będzie para(T[6] i T[7]) Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] idx=6 T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP F T T idx=6 Len=9
27
T[idx]<->T[idx+1]
Bubble sort START Para znajduje się w części nieopracowanej – będzie analizowana. Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] idx=6 T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP F T T idx=6 Len=9
28
T[idx]<->T[idx+1]
Bubble sort START Większy element jest przed mniejszym – nastąpi przestawienie. Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] idx=6 T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP T F T idx=6 Len=9
29
T[idx]<->T[idx+1]
Bubble sort START Przestawienie. „Cięższy” element „spadł niżej”, a ”lżejszy” „poszedł w górę”. Len=9 T: 2 3 8 9 6 7 4 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] idx=6 6 9 T F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP T F T idx=6 Len=9
30
T[idx]<->T[idx+1]
Bubble sort START I kolejne dwa elementy – jeszcze w części nieposortowanej. Pętla wykona kolejny obrót. Len=9 T: 2 3 8 7 4 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] 6 9 T idx=7 F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP T F T idx=7 Len=9
31
T[idx]<->T[idx+1]
Bubble sort START Będzie przestawienie. Len=9 T: 2 3 8 7 4 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] 6 9 T idx=7 F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP T F T idx=7 Len=9
32
T[idx]<->T[idx+1]
Bubble sort START Przestawienie Len=9 T: 2 3 8 7 4 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] 6 9 T idx=7 7 9 F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP T F T idx=7 Len=9
33
T[idx]<->T[idx+1]
Bubble sort START Jeszcze jedna para będzie sprawdzana - nie osiągnięto końca obszaru sortowanego. Wykonany zostanie kolejny obrót petli. Len=9 T: 2 3 8 4 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] 6 7 9 T idx=8 F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP T F T idx=8 Len=9
34
T[idx]<->T[idx+1]
Bubble sort START Znów przestawienie: Bo T[idx] jest większe od T[idx+1] Len=9 T: 2 3 8 4 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] 6 7 9 T idx=8 F Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP T F T idx=8 Len=9
35
T[idx]<->T[idx+1]
Bubble sort START Przestawienie. „9” dotarło na “dno”. Len=9 T: 2 3 8 4 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] 6 7 9 T idx=8 4 9 F Idx++ Len-- Len=8 Idx>=Len Len<=1 F STOP T F T idx=8 Len=9
36
T[idx]<->T[idx+1]
Bubble sort START Obszar przestawiania dotarł do końca części sortowanej – pętla jest przerywana. Len=9 T: 2 3 8 9 idx=1 1 5 T[idx]<->T[idx+1] T[idx]>T[idx+1] 6 7 4 T F idx=9 Idx++ Len-- Len=9 Idx>=Len Len<=1 F STOP F T T idx=9 Len=9
37
T[idx]<->T[idx+1]
Bubble sort START „9” jest już na właściwym miejscu. Część sortowana może być skrócona o jedną liczbę. Len=9 T: 2 3 1 5 8 6 7 4 9 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T Len=8 F idx=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=9 Len=8
38
T[idx]<->T[idx+1]
Bubble sort START To jeszcze nie koniec – jest co sortować. Len=9 T: 2 3 1 5 8 6 7 4 9 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T Len=9 F idx=9 Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=9 Len=8
39
T[idx]<->T[idx+1]
Bubble sort START Dla całej nieposortowanej części cała praca zaczyna się od nowa.. Len=9 T: 2 3 1 5 8 6 7 4 9 idx=1 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T Len=8 F Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=1 Len=8
40
T[idx]<->T[idx+1]
Bubble sort START Znowu, w zależności od ustawienia, kolejne liczby są przestawiane... i tak dla wszystkich par w części nieposortowanej. Len=9 T: 2 3 1 5 8 6 7 4 9 idx=1 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T Len=8 F Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=1 Len=8
41
T[idx]<->T[idx+1]
Bubble sort START Ta część zostanie przedstawiona w skrócie. Zaznaczone zostaną tylko przestawienia. Przed cyklem: Przed cyklem: Len=9 Po cyklu: T: 2 3 1 5 8 6 7 4 9 T: 2 3 1 5 6 7 4 8 9 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=2 idx=2 idx=1 idx=2 idx=1 idx=2 idx=1 idx=1 idx=2 idx=2 idx=1 idx=1 idx=1 idx=3 idx=3 idx=1 idx=1 idx=3 idx=3 idx=1 idx=3 idx=3 idx=1 idx=1 idx=4 idx=1 idx=1 idx=1 idx=1 idx=4 idx=4 idx=4 idx=4 idx=1 idx=4 idx=1 T[idx]<->T[idx+1] idx=5 idx=1 idx=5 idx=1 idx=1 idx=5 idx=5 idx=1 idx=1 idx=1 idx=5 idx=5 T[idx]>T[idx+1] idx=1 idx=6 idx=6 idx=1 idx=1 idx=1 idx=6 idx=6 idx=6 idx=6 idx=1 idx=1 T idx=1 idx=1 idx=7 idx=1 idx=7 idx=1 idx=1 idx=7 idx=1 idx=1 idx=1 idx=7 idx=1 idx=1 idx=7 idx=1 idx=7 idx=1 idx=8 idx=8 idx=8 idx=8 Len=8 Len=8 Len=8 Len=8 idx=8 idx=8 Len=8 Len=8 F Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=1 Len=8
42
T[idx]<->T[idx+1]
Bubble sort START Po pełnym cyklu, “8” jest na właściwym miejscu. Część do sortowania jest znowu skracana. Przed cyklem: Przed cyklem: Len=9 T: 2 3 1 5 6 7 4 8 9 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=2 idx=2 idx=1 idx=2 idx=1 idx=1 idx=2 idx=1 idx=3 idx=1 idx=1 idx=3 idx=3 idx=1 idx=1 idx=3 idx=1 idx=4 idx=1 idx=4 idx=1 idx=4 idx=4 idx=1 T[idx]<->T[idx+1] idx=5 idx=1 idx=1 idx=5 idx=5 idx=5 idx=1 idx=1 T[idx]>T[idx+1] idx=1 idx=6 idx=1 idx=1 idx=1 idx=6 idx=6 idx=6 T idx=7 idx=1 idx=1 idx=1 idx=7 idx=1 idx=1 idx=1 idx=1 idx=7 idx=1 idx=7 idx=8 idx=8 idx=8 idx=8 Len=8 Len=8 Len=8 Len=8 F Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=1 Len=8
43
T[idx]<->T[idx+1]
Bubble sort START Na razie ma długość większą niż 1. Przed cyklem: Przed cyklem: Len=9 T: 2 3 1 5 6 7 4 8 9 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T Len=7 Len=8 Len=8 Len=8 F Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=1 Len=8
44
T[idx]<->T[idx+1]
Bubble sort START Zewnętrzna pętla jest powtarzana, aż długość części posortowanej zmaleje do 1 elementu. Po cyklu: Przed cyklem: Przed cyklem: Przed cyklem: Przed cyklem: Len=9 T: 2 3 1 5 6 7 4 8 9 T: 2 1 3 5 6 4 7 8 9 T: 1 2 3 5 4 6 7 8 9 T: 1 2 3 5 4 6 7 8 9 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx= idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 idx=1 Od tego momentu algorytm pracuje na darmo. Wykona jeszcze 4 przebiegi, w których nic sie nie zmieni. Len=5 T[idx]<->T[idx+1] T[idx]>T[idx+1] Len=6 T Len=7 Len=8 F Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=1 Len=8
45
T[idx]<->T[idx+1]
Bubble sort START Kiedy część do posortowania ma 1 element – cały algorytm kończy się Len=9 T: 1 2 3 5 4 6 7 8 9 Len=1 idx=1 T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=1 Len=8
46
T[idx]<->T[idx+1]
Bubble sort START I to by było na tyle... Len=9 T: 1 2 3 5 4 6 7 8 9 Len=1 idx=1 Cała tablica jest posortowana T[idx]<->T[idx+1] T[idx]>T[idx+1] T F Idx++ Len-- Idx>=Len Len<=1 F STOP F T T idx=1 Len=8
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.