Szybkie porzdki Realizowanie algorytmu porzdkowania przez scalanie Sortowanie
Szybkie porządki. Realizowanie algorytmu porządkowania przez scalanie.
Sortowanie danych jest jednym z podstawowych problemów programowania komputerów, z którym prędzej czy później spotka się każdy programista. Poniżej przedstawiamy tylko nieliczne dziedziny, w których występuje potrzeba sortowania danych: - sport - wyniki uzyskane przez poszczególnych zawodników należy ułożyć w określonej kolejności, aby wyłonić zwycięzcę oraz podać lokatę każdego zawodnika. - bank - spłaty kredytów należy ułożyć w odpowiedniej kolejności, aby wiadomo było kto i kiedy ma płacić odsetki do banku. - grafika - wiele algorytmów graficznych wymaga porządkowania elementów, np. ścian obiektów ze względu na odległość od obserwatora. Uporządkowanie takie pozwala później określić, które ze ścian są zakrywane przez inne ściany dając w efekcie obraz trójwymiarowy. - bazy danych - informacja przechowywana w bazie danych może wymagać różnego rodzaju uporządkowania, np. lista książek może być alfabetycznie porządkowana wg autorów lub tytułów, co znacznie ułatwia znalezienie określonej pozycji.
Sortowanie przez scalanie rekurencyjny algorytm sortowania danych, stosujący metodę dziel i zwyciężaj. Odkrycie algorytmu przypisuje się Johnowi von Neumannowi. Wyróżnić można trzy podstawowe kroki algorytmu[1]: o Podział zestawu danych na dwie równe części[4]. o Zastosowanie sortowania przez scalanie dla każdej z nich oddzielnie, chyba że pozostał już tylko jeden element. o Połączenie posortowanych podciągów w jeden posortowany ciąg.
Sortowanie przez scalanie Sposób scalania można opisać następująco: 1. Porównaj pierwsze elementy zbiorów. 2. Mniejszy element wstaw do nowego zbioru (w którym będą przechowywane elementy uporządkowane) i usuń go ze starego zbioru. 3. Powtórz te czynności, aż oba stare zbiory będą puste (nowy zbiór będzie wtedy zapełniony uporządkowanymi elementami). 4. Przykład scalania dwóch list, wykonanego w programie SNAP! znajdziesz pod adresem: 5. https: //snap. berkeley. edu/snapsource/snap. html#present: Userna me=witek&Project. Name=scalanie
- Slides: 5