A Algorytm sortowania służy do zmiany układu danej tablicy lub listy elementów zgodnie z operatorem porównania na elementach. Operator porównania służy do decydowania o nowej kolejności elementów w odpowiedniej strukturze danych.
Na przykład: Poniższa lista znaków jest posortowana w kolejności rosnącej według ich wartości ASCII. Oznacza to, że znak o mniejszej wartości ASCII zostanie umieszczony jako pierwszy niż znak o wyższej wartości ASCII.
Spis treści
- Co to jest sortowanie?
- Terminologia sortowania
- Charakterystyka algorytmów sortowania
- Zastosowania algorytmów sortowania
- Podstawy algorytmów sortowania
- Algorytmy sortowania
- Wdrożenia bibliotek
- Łatwe problemy z sortowaniem
- Średnie problemy z sortowaniem
- Trudne problemy z sortowaniem
Co to jest sortowanie?
Sortowanie odnosi się do przegrupowania danej tablicy lub listy elementów zgodnie z operatorem porównania na elementach. Operator porównania służy do decydowania o nowej kolejności elementów w odpowiedniej strukturze danych. Sortowanie oznacza zmianę kolejności wszystkich elementów w kolejności rosnącej lub malejącej.
Terminologia sortowania:
- Sortowanie na miejscu: Wykorzystuje algorytm sortowania w miejscu stała przestrzeń do tworzenia danych wyjściowych (modyfikuje tylko podaną tablicę). Sortuje listę jedynie poprzez zmianę kolejności elementów na liście. Przykłady: sortowanie przez wybór, sortowanie bąbelkowe, sortowanie przez wstawianie i sortowanie na stercie.
- Sortowanie wewnętrzne: Sortowanie wewnętrzne ma miejsce, gdy wszystkie dane są umieszczane w pliku pamięć główna Lub pamięć wewnętrzna . W przypadku sortowania wewnętrznego problem nie może wymagać danych wejściowych przekraczających jego rozmiar. Przykład: sortowanie na stercie, sortowanie bąbelkowe, sortowanie przez zaznaczenie, sortowanie szybkie, sortowanie powłokowe, sortowanie przez wstawianie.
- Sortowanie zewnętrzne: Sortowanie zewnętrzne ma miejsce, gdy nie można jednocześnie umieścić w pamięci wszystkich danych wymagających posortowania. Sortowanie nazywa się sortowaniem zewnętrznym. Sortowanie zewnętrzne jest stosowane w przypadku ogromnych ilości danych. Przykłady: sortowanie przez scalanie, sortowanie według znaczników, sortowanie wielofazowe, sortowanie na czterech taśmach, sortowanie według zewnętrznej podstawy itp.
- Stabilne sortowanie: Kiedy w To samo zamówienie w posortowanych danych bez zmiany ich położenia nazywa się sortowaniem stabilnym. Przykłady: sortowanie przez scalanie, sortowanie przez wstawianie, sortowanie bąbelkowe.
- Niestabilne sortowanie: Kiedy w różny zamówienie w przypadku posortowanych danych nazywa się to sortowaniem niestabilnym. Przykłady: sortowanie szybkie, sortowanie stertowe, sortowanie skorupowe .
Charakterystyka algorytmów sortowania:
- Złożoność czasowa: Złożoność czasowa, miara czasu potrzebnego na wykonanie algorytmu, służy do kategoryzowania algorytmów sortowania. Do ilościowego określenia złożoności czasowej procesu można wykorzystać wydajność algorytmu sortowania w najgorszym, średnim i najlepszym przypadku.
- Złożoność przestrzeni: Algorytmy sortujące mają również złożoność przestrzenną, czyli ilość pamięci wymaganej do wykonania algorytmu.
- Stabilność: Algorytm sortowania nazywa się stabilnym, jeśli po sortowaniu zachowana jest względna kolejność równych elementów. Jest to ważne w niektórych zastosowaniach, w których należy zachować pierwotną kolejność równych elementów.
- Sortowanie na miejscu: Algorytm sortowania w miejscu to taki, który nie wymaga dodatkowej pamięci do sortowania danych. Jest to ważne, gdy dostępna pamięć jest ograniczona lub gdy nie można przenieść danych.
- Zdolność do adaptacji: Algorytm sortowania adaptacyjnego to taki, który wykorzystuje istniejący wcześniej porządek danych w celu poprawy wydajności.
Zastosowania algorytmów sortowania:
- Algorytmy wyszukiwania: Sortowanie jest często kluczowym krokiem w algorytmach wyszukiwania, takich jak wyszukiwanie binarne czy wyszukiwanie trójskładnikowe, gdzie dane muszą zostać posortowane przed wyszukaniem określonego elementu.
- Zarządzanie danymi: Sortowanie danych ułatwia wyszukiwanie, pobieranie i analizowanie.
- Optymalizacja bazy danych: Sortowanie danych w bazach danych poprawia wydajność zapytań.
- Nauczanie maszynowe: Sortowanie służy do przygotowywania danych do uczenia modeli uczenia maszynowego.
- Analiza danych: Sortowanie pomaga w identyfikowaniu wzorców, trendów i wartości odstających w zbiorach danych. Odgrywa kluczową rolę w analizie statystycznej, modelowaniu finansowym i innych dziedzinach opartych na danych.
- System operacyjny: Algorytmy sortowania są używane w systemach operacyjnych do zadań takich jak planowanie zadań, zarządzanie pamięcią i organizacja systemu plików.
Podstawy algorytmów sortowania:
- Wprowadzenie do technik sortowania – samouczki dotyczące struktury danych i algorytmów
- Zastosowania, zalety i wady algorytmu sortowania
- Jaki jest przykład sortowania z życia wzięty?
- Co to jest sortowanie w DSA | Znaczenie sortowania
Algorytmy sortowania:
- Sortowanie przez wybór
- Sortowanie bąbelkowe
- Sortowanie przez wstawianie
- Sortowanie przez scalanie
- Szybkie sortowanie
- Sortowanie sterty
- Sortowanie zliczające
- Sortuj Radix
- Sortowanie wiadro
- Algorytm sortowania Bingo
- Sortowanie powłoki
- TimSort
- Sortowanie grzebieniowe
- Sortowanie przegródek
- Sortowanie cykliczne
- Sortowanie koktajli
- Sortowanie nici
- Sortowanie bitoniczne
- Sortowanie naleśników
- Sortowanie Bogo lub sortowanie permutacyjne
- Sortowanie gnomów
- Rodzaj snu – król lenistwa
- Sortowanie struktur w C++
- Sortowanie Stooge
- Sortowanie tagów (aby uzyskać zarówno posortowane, jak i oryginalne)
- Sortowanie drzew
- Sortowanie nieparzyste i parzyste / sortowanie według cegieł
- Sortowanie przez scalanie 3-kierunkowe
Implementacje bibliotek:
- Introsort – broń sortująca C++
- Funkcja komparatora qsort() w C
- sort() w C++ STL
- C qsort() vs C++ sort()
- Arrays.sort() w Javie z przykładami
- Collections.sort() w Javie z przykładami
Łatwe problemy z sortowaniem:
- Sortuj elementy według częstotliwości
- Sortuj tablicę zer, 1 i 2
- Sortuj numery zapisane na różnych komputerach
- Sortuj tablicę w formie fali
- Sprawdź, czy dowolne dwa przedziały nakładają się na siebie w danym zestawie przedziałów
- Jak posortować tablicę dat w C/C++?
- Sortowanie ciągów za pomocą sortowania bąbelkowego
- Znajdź brakujące elementy zakresu
- Sortuj tablicę według liczby ustawionych bitów
- Sortuj elementy parzyste w kolejności rosnącej, a nieparzyste w kolejności malejącej
- Sortuj tablicę, gdy sortowane są dwie połówki
- Sortowanie dużych liczb całkowitych
- Sortuj połączoną listę zer, 1 i 2
Średnie problemy z sortowaniem:
- Liczba inwersji w tablicy przy użyciu sortowania przez scalanie
- Znajdź minimalną długość nieposortowanej podtablicy, której sortowanie spowoduje posortowanie całej tablicy
- Sortuj tablicę prawie posortowaną (lub posortowaną K).
- Sortuj n liczb z zakresu od 0 do n^2 – 1 w czasie liniowym
- Sortuj tablicę zgodnie z kolejnością określoną przez inną tablicę
- Znajdź punkt, w którym pokrywają się maksymalne odstępy
- Znajdź permutację, która powoduje najgorszy przypadek sortowania przez scalanie
- Sortuj wektory par w kolejności rosnącej w C++
- Minimalna liczba zamian, aby dwie tablice były identyczne
- Problem dystrybucji czekolady
- Przeprowadź permutację dwóch tablic w taki sposób, aby suma każdej pary była większa lub równa K
- Sortowanie segmentowe Aby posortować tablicę z liczbami ujemnymi
- Sortuj macierz w kolejności rosnącej
- Konwertuj tablicę do postaci zredukowanej za pomocą wektora par
- Najmniejsza trójka różnicowa z trzech tablic
- Sprawdź, czy możliwe jest sortowanie tablicy z dozwoloną warunkową zamianą sąsiednich
Trudne problemy z sortowaniem:
- Znajdź liczbę przekroczeń każdego elementu w tablicy
- Policz różne wystąpienia jako podciąg
- Policz minimalną liczbę podzbiorów (lub podciągów) kolejnymi liczbami
- Wybierz k elementów tablicy tak, aby różnica między maksimum i minimum była zminimalizowana
- Minimalna zamiana wymagana do konwersji drzewa binarnego na drzewo wyszukiwania binarnego
- K-ty najmniejszy element po usunięciu niektórych liczb całkowitych z liczb naturalnych
- Maksymalna różnica częstotliwości dwóch elementów taka, że element mający większą częstotliwość jest również większy
- Minimalna liczba swapów, aby osiągnąć permutowaną tablicę, przy czym dozwolone są maksymalnie 2 pozycje
- Sprawdź, czy możliwe jest utworzenie takich samych elementów tablicy przy użyciu jednego numeru zewnętrznego
- Posortuj tablicę po zastosowaniu podanego równania
- Wydrukuj tablicę ciągów w posortowanej kolejności bez kopiowania jednego ciągu do drugiego
Szybkie linki :
- „Zadania praktyczne” dotyczące sortowania
- „Quizy” dotyczące sortowania
Zalecana:
- Naucz się struktury danych i algorytmów | Poradnik DSA