Wybór algorytmu
Od czago zależy wybór konkretnego algorytmu do zastosowania w programie?
Czy zastosowanie sortowania bąbelkowego ma jakiś sens? Przecież jest to najwolniejsza metoda.
Wydaje mi się, że nie ma jakiejś uniwersalnej metody jaki algorytm zastosować. Każdy programista może bardzo podobny problem rozwiązać stosując inne algorytmy. Ale znając działanie pewnych algorytmów programista może bardziej świadomie podchodzić do rozwiązywania pewnych problemów.
Podczas „przeglądania” różnej literatury na temat algorytmów właśnie spodobało mi się takie oto zdanie: „Dobry algorytm jest jak ostry nóż – przy najmniejszym wysiłku robi dokładnie to, co ma robić. Używanie złego algorytmu, to jak krojenie steku korkociągiem. Rezultat może nie być ani efektywny, ani apetyczny”. Cytat ten pochodzi z książki pt. Wprowadzenie do algorytmów – Corman Thomas H.
Jak już wcześniej napisałem, wiele problemów można rozwiązać na różne sposoby. Aby wybrać najlepszy sposób trzeba je ze sobą porównać. Z tego co wiem, to istnieje kilka metod porównywania algorytmów, ale najpopularniejszą i najlepiej rozwiniętą jest porównanie wydajności czasowej rozwiązywania danego problemu. Czas działania danego algorytmu zależy nie tylko od danych wejściowych, ale także od ich wartości i rozmieszczenia. No i w dużej części również od szybkości komputera ;-)
Czy zastosowanie sortowania bąbelkowego ma jakiś sens? Przecież jest to najwolniejsza metoda.
Sortowanie bąbelkowe jest jednym z najstarszych algorytmów. Zyskało sobie rozgłos właśnie dzięki nazwie ;-) Jego niewątpliwą zaletą jest prostota i łatwość zrozumienia. Natomiast wadą to, że jest to algorytm mało efektywny. Można go stosować tylko dla niewielkiej liczby elementów w sortowanym zbiorze (do około 5000). Przy większych zbiorach czas sortowania może być zbyt długi.
Wydaje mi się, że sortowanie bąbelkowe jest stosowane głównie w celach edukacyjnych. Na razie nigdzie nie mogłem znaleźć jakiś konkretnych przykładów zastosowań tego algorytmu :-(
Uważasz, że artykuł był ciekawy i chcesz otrzymywać powiadomienia o moich kolejnych wpisach lub projektach?
Wpisz swoje imię oraz adres e-mail a następnie kliknij "ZAPISZ MNIE"
Podobne wpisy
By accepting you will be accessing a service provided by a third-party external to https://www.slawop.net/