Wpisany przez Michał Knasiecki
sobota, 13 sierpnia 2005 11:03
Jest to jeden z prostszych algorytmów sortowania.
Sprawdzamy całą tablicę od końca, jeżeli trafimy na parę elementów, w której większy poprzedza mniejszy to zamieniamy je miejscami i znów zaczynamy przeszukiwać tą tablicę od końca. Czynność powtarzamy tak długo aż podczas sprawdzania całej tablicy, nie zajdzie ani jedna zamiana elementów. Realizuje się to najczęściej za pomocą zmiennej logicznej.
Algorytm nosi nazwę bąbelkowego, gdyż najmniejsze liczby "wypływają" z dołu tablicy na jej szczyt.
Oto przykład zastosowania dla nieuporządkowanego ciągu liczb <<2, 4, 1, 3>>.
Przy następnym przebiegu nie zajdzie ani jedna zmiana, to znak, że ciąg jest już posortowany.
Z powyższego zdania można wyciągnąć wniosek, że gdy ciąg wejściowy będzie posortowany, to algorytm wykona tylko jeden przebieg. Jest to duża zaleta tego sposobu sortowania, niektóre metody będą sortowały ciąg nawet jeśli będzie on posortowany.
Z kolei najgorszym zestawem danych dla tego algorytmu jest ciąg posortowany nierosnąco.
Sprawdzamy całą tablicę od końca, jeżeli trafimy na parę elementów, w której większy poprzedza mniejszy to zamieniamy je miejscami i znów zaczynamy przeszukiwać tą tablicę od końca. Czynność powtarzamy tak długo aż podczas sprawdzania całej tablicy, nie zajdzie ani jedna zamiana elementów. Realizuje się to najczęściej za pomocą zmiennej logicznej.
Algorytm nosi nazwę bąbelkowego, gdyż najmniejsze liczby "wypływają" z dołu tablicy na jej szczyt.
Oto przykład zastosowania dla nieuporządkowanego ciągu liczb <<2, 4, 1, 3>>.

Z powyższego zdania można wyciągnąć wniosek, że gdy ciąg wejściowy będzie posortowany, to algorytm wykona tylko jeden przebieg. Jest to duża zaleta tego sposobu sortowania, niektóre metody będą sortowały ciąg nawet jeśli będzie on posortowany.
Z kolei najgorszym zestawem danych dla tego algorytmu jest ciąg posortowany nierosnąco.
| Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
| kris | C# | ![]() | ![]() |
![]() ![]() ![]() ![]() / 7 | |
| Michał Knasiecki | C/C++ | ![]() | ![]() |
![]() ![]() ![]() ![]() / 14 | |
| Marian | C/C++ | C++ | ![]() | ![]() |
![]() ![]() ![]() ![]() / 7 |
| Krzysztof Sośnierz | C/C++ | C++ templates | ![]() | ![]() |
![]() ![]() ![]() ![]() / 7 |
| mariano | C/C++ | C++ | ![]() | ![]() |
![]() ![]() ![]() ![]() / 7 |
| Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | ![]() | ![]() |
![]() ![]() ![]() ![]() / 7 |
| Tomasz Lubiński | Java | ![]() | ![]() |
![]() ![]() ![]() ![]() / 10 | |
| Jakub Konieczny | Java Block | ![]() | ![]() |
![]() ![]() ![]() ![]() / 3 | |
| Dominik Goździuk | Perl | ![]() | ![]() |
![]() ![]() ![]() ![]() / 0 | |
| _marass_ | Php | ![]() | ![]() |
![]() ![]() ![]() ![]() / 3 | |
| Jakub Konieczny | Python | ![]() | ![]() |
![]() ![]() ![]() ![]() / 2 |
Poprawiony: piątek, 27 maja 2011 08:43



/ 7






Komentarze
skorzystam bo baardzo mi sie przyda..hehe...;]
wkońcu skumałam o co w tym chodzi...
poooOzdrówkA.!