Algorytmy
INF.04. Projektowanie, programowanie i testowanie aplikacji - Technik programista 351406
Algorytmy
ATLAS INTERAKTYWNY
Spis treści
Zachłanne algorytmy sortująceZachłanne algorytmy sortujące
Algorytmy sortujące działające na zasadzie „dziel i zwyciężaj”Algorytmy sortujące działające na zasadzie „dziel i zwyciężaj”
Sortowanie bąbelkoweSortowanie bąbelkowe
1. Zachłanne algorytmy sortujące
Zachłanne algorytmy sortujące
Sortowanie przez wstawianie
Sortowanie przez wstawianie, znane również jako Insertion Sort, to algorytm sortowania, który porządkuje elementy w zbiorze poprzez iteracyjne wstawianie każdego elementu na odpowiednie miejsce w już posortowanej części zbioru. Algorytm polega na przeglądaniu zbioru od drugiego elementu do ostatniego, przy czym dla każdego elementu porównuje się go z elementami wcześniejszymi, przesuwając większe elementy w prawo, aby zrobić miejsce dla obecnie wstawianego elementu. Następnie wstawiany element jest umieszczany na odpowiednim miejscu w posortowanej części zbioru. Algorytm kontynuuje iterację, powtarzając te kroki dla każdego elementu, do momentu aż cały zbiór zostanie posortowany.
Dane wejściowe
en małe należy do en wielkie - liczba elementów sortowanego zbioru,
d otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu - sortowany zbiór o n elementach.
Dane wyjściowe:
d otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu - posortowany zbiór en‑elementowy.
Zmienne pomocnicze:
i jot należą do wielkie eN - zmienne wykorzystywane do sterowania pętlą,
x - przechowuje wybrany element ze zbioru.
Lista kroków:
Przejdź przez zbiór od drugiego elementu do ostatniego.
Wybierz bieżący element i oznacz go jako element do wstawienia.
Porównuj wybrany element z elementami wcześniejszymi, zaczynając od elementu bezpośrednio przed nim.
Jeżeli istnieje element przed elementem wybranym i jest od niego większy, przesuń ten element w prawo.
Wstaw wybrany element w miejsce „dziury” powstałej po przesunięciu elementów większych.
Powtarzaj kroki 2‑5 dla każdego kolejnego elementu w zbiorze.
Zakończ proces sortowania i wyeksportuj uporządkowany zbiór danych.
Poniżej znajduje się ilustracja. Opis schematu: Na górze znajduje się ramka z napisem: Start. Od niej prowadzi linia do ramki z napisem: jot strzałka do jot od en minus jeden. Od tej ramki strzałka w dół do ramki jot jest większe lub równe jeden. Od tej ramki poprowadzone są dwie strzałki. Pierwsza do ramki z napisem: Koniec. Druga prowadzi do ramki ze wzorem x strzałka do x od d jot w kwadratowym nawiasie, niżej i strzałka do i od jot plus jeden. Od tej ramki prowadzi w dół strzałka do i jest mniejsze lub równe en. Od tej ramki prowadzą dwie strzałki. Pierwsza linia prowadzi do ramki z tekstem: d otwarcie nawiasu kwadratowego i minus jeden zamknięcie nawiasu kwadratowego strzałka w lewą stronę od x, niżej: jot strzałka w lewą stronę jot minus jeden. Druga strzałka prowadzi do ramki z tekstem x mniejsze bądź równe d w nawiasie kwadratowym i. Od tej ramki prowadzą dwie strzałki. Pierwsza łączy się ze strzałką poprowadzoną do napisu: d otwarcie nawiasu kwadratowego i minus jeden zamknięcie nawiasu kwadratowego strzałka w lewą stronę od x, niżej: jot strzałka w lewą stroję jot minus jeden. Druga prowadzi do ramki z tekstem de otwarcie kwadratowego nawiasu i minus jeden strzałka w lewą stronę de otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu. Od ramki poprowadzona jest strzałka do napisu: i strzałka w lewą stronę i plus jeden. Od tej ramki poprowadzona jest strzałka do strzałki poprowadzonej do ramki z tekstem i mniejsze lub równe zero, umiejscowionej powyżej. Ta strzałka opisana jest numerem dwa. Od ramki z tekstem: d otwarcie nawiasu kwadratowego i minus jeden zamknięcie nawiasu kwadratowego strzałka w lewą stronę od x, niżej: jot strzałka w lewą stronę jot minus jeden poprowadzona jest strzałka opisana numerem jeden do strzałki poprowadzonej do ramki z tekstem jot jest mniejsze bądź równe jeden.
C++
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linijka: hasz include otwarcie trójkątnego nawiasu iostream zamknięcie trójkątnego nawiasu Druga linijka: using namespace std średnik
Trzecia linijka jest pusta.
Czwarta linijka: void sortowaniePrzezWstawianie otwarcie okrągłego nawiasu int zbior otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu przecinek int rozmiar zamknięcie okrągłego nawiasu spacja otwarcie klamry
Piąta linijka: for otwarcie okrągłego nawiasu int i znak równości 1 średnik i otwarcie trójkątnego nawiasu rozmiar; i plus plus zamknięcie okrągłego nawiasu spacja otwarcie klamry
Szósta linijka: int klucz znak równości zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu średnik
Siódma lnia: int j znak równości i minus 1 średnik
Ósma linia jest pusta
Dziewiąta linijka: while otwarcie okrągłego nawiasu jot znak równości 0 end end zbior otwarcie kwadratowego nawiasu j zamknięcie kwadratowego nawiasu zamknięcie trójkątnego nawiasu klucz zamknięcie okrągłego nawiasu klmara otwierająca
Dziesiąta linia: zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu średnik Kolejna linia: jot znak równości jot myślnik 1 średnik Następna linia: klamra zamykająca
Następna linia pusta.
Kolejna linia: zbior otwarcie kwadratowego nawiasu jot plus jeden zamknięcie kwadratowego nawiasu średnik
Następna linia: klamra zamykająca
Kolejna linia pusta.
Następna linia: zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu znak równości klucz średnik
Kolejna linia: Klamra zamykająca Kolejna linia: klamra zamykająca
Kolejna linia pusta.
Następna linia: int main otwarcie okrągłego nawiasu zamknięcie okrągłego nawiasu otwarcie klamry
Kolejna linia: int zbior otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu znak równości otwarcie klamry 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Następna linia: int rozmiar znak równości sizeof otwarcie okrągłego nawiasu zbior zakmnięcie okrągłego nawiasu ukośnik sizeof otwarcie okrągłego nawiasu zbior otwarcie kwadratowego nawiasu 0 zamknięcie kwadratowego nawiasu zamknięcie okrągłego nawiasu średnik
Kolejna linia pusta.
Następna linia: sortowaniePrzezWstawianie otwarcie okrągłego nawiasu zbior, rozmiar zamknięcie okrągłego nawiasu średnik
Kolejna linia pusta.
Następna linia: cout otwarcie trójkątnego nawiasu otwarcie trójkątnego nawiasu cudzysłów Posortowany zbior dwukropek cudzysłów średnik
Kolejna linia: for otwarcie okrągłe nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu rozmiar średnik i plus plus zamknięcie okrągłego nawiasu spacja otwarcie klamry
Kolejna linia: cout otwarcie trójkątnego nawiasu otwarcie trójkątnego nawiasu zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu otwarcie trójkątnego nawiasu otwarcie trójkątnego nawiasu cudzysłów cudzysłów średnik
Kolejna linia: klamra zamykająca
Przedostatnia linijka: return 0 średnik
Ostatnia linia: Klamra zamykająca
C#
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: using System średnik
Druga linia: class Sortowanie PrzezWstawianie otwarcie klamry
Kolejna linia: static void sortowaniePrzezWstawianie otwarcie nawiasu int otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu zbior zamknięcie nawiasu otwarcie klamry
Ostatnia linia: int rozmiar znak równości zbior kropka Length średnik
Następna linia pusta.
Kolejna linia: for otwarcie nawiasu int i znak równości 1 średnik i otwarcie trójkątnego nawiasu rozmiar średnik i plus plus zamknięcie nawiasu otwarcie klamry
Kolejna linia: int klucz znak równości zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu średnik
Następna linia: int jot znak równości i minus 1 średnik
Kolejna linia jest pusta.
Kolejna linia: while otwarcie nawiasu jot zamknięcie trójkątnego nawiasu znak równości 0 end end zbior otwarcie kwadratowego nawiasuj zamknięcie kwadratowego nawiasu zamknięcie trójkątnego nawiasu klucz zamknięcie nawiasu otwarcie klamry
Następna linia: zbior otwarcie kwadratowego nawiasu jot plus jeden zamknięcie kwadratowego nawiasu = zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu średnik
Kolejna linia: jot myślnik myślnik średnik
Następna linia: otwarcie klamry
Kolejna linia: zbior otwarcie kwadratowego nawiasu jot plus jeden zamknięcie kwadratowego nawiasu = klucz; Następna linia: zamknięcie klamry
Następna linia: zamknięcie klamry Kolejna linia jest pusta.
Następna linia: static void Main otwarcie nawiasu) otwarcie klamry
Kolejna linia: int otwarcie kwadratowego nawiasu] zbior znak równości otwarcie klamry 7, 2, 1, 6, 8, 5, 3, 4 zamknięcie klamry średnik Następna linia jest pusta.
Następna linia: sortowaniePrzezWstawianie otwarcie nawiasu zbior) średnik Kolejna linia jest pusta.
Następna linia: Console.Write otwarcie nawiasu cudzysłów Posortowany zbior: zamknięcie cudzysłowu zamknięcie nawiasu średnik
Następona linia: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu zbior kropka Length średnik i plus plus zamknięcie nawiasu otwarcie klamry
Kolejna linia: Console kropkaWrite otwarcie nawiasu zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu plus cudzysłów zamknięcie nawiasu średnik
Następna linia: zamknięcie klamry.
Kolejna linia: zamknięcie klamry.
Ostatnia linia: zamknięcie klamry.
Java
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: public class Sortowanie PrzezWstawianie otwarcie klamry
Następna linia: static void sortowanie PrzezWstawianie otwarcie nawiasu int otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu zbior zamknięcie nawiasu otwarcie klamry
Następna linia: int rozmiar znak równości zbior.length średnik
Następna linia jest pusta
Następna linia: for otwarcie nawiasu int i znak równości 1 średnik i otwarcie trójkątnego nawiasu rozmiar średnik i plus pluszamknięcie nawiasu otwarcie klamry
Następna linia:int klucz znak równości zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu średnik Następna linia: int jot znak równości i minus 1 średnik
Następna linia jest pusta.
Następna linia: while otwarcie nawiasu jot zamknięcie nawiasu trójkątnego znak równości 0 end end zbior otwarcie kwadratowego nawiasuj zamknięcie kawadratowego nawiasu zamknięcie trójkątnego nawiasu klucz zamknięcie nawiasu otwarcie klamry
Następna linia: zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu średnik
Następna linia: jot minus minus średnik
Następna linia: otwarcie klamry
Następna linia: zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu znak równości klucz; Następna linia: otwarcie klamry
Następna linia: otwarcie klamry
Następna linia: public static void main otwarcie nawiasuString otwarcie kwadratowego nawiasu] args zamknięcie nawiasu otwarcie klamry
Następna linia: int otwarcie kwadratowego nawiasu] zbior znak równości klamara otwierająca 7, 2, 1, 6, 8, 5, 3, 4 Następna linia: klamra zamykająca średnik Następna linia: sortowaniePrzezWstawianie otwarcie nawiasu zbior zamknięcie nawiasu średnik
Następna linia: System kropka out kropka print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior: zamknięcie cudzysłowu zamknięcie nawiasu średnik
Następna linia: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu zbior kropka length śrenik i plus plus zamknięcie nawiasu otwarcie klamry zamknięcie klamry etaeta
Następna linia: System.out.print otwarcie nawiasu zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu plus otwarcie cudzysłowu zamknięcie cudzysłowu zamknięcie nawiasu średnik Następna linia: zamknięcie klamry
Następna linia: zamknięcie klamry
Następna linia: zamknięcie klamry
Python
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: def sortowanie podkreślnik przez podkreślnik wstawianie otwarcie nawiasu zbior zamknięcie nawiasu dwukropek
Kolejna linia: rozmiar znak równości len otwarcie nawiasu zbior zamknięcie nawiasu Kolejna linia jest pusta.
Kolejna linia: for i in range otwarcie nawiasu 1, rozmiar zamknięcie nawiasu dwukropek
Kolejna linia: klucz znak równości zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu
Kolejna linia: jot znak równości i minus 1
Kolejna linia jest pusta.
Kolejna linia: while j zamknięcie trójkątnego nawiasu znak równości 0 and zbior otwarcie kwadratowego nawiasu j zamknięcie kwadratowego nawiasu zamknięcie trójkątnego nawiasu klucz dwukropek
Kolejna linia: zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasuj zamknięcie kwadratowego nawiasu
Kolejna linia: jot myślnik znak równości 1
Kolejna linia jest pusta.
Kolejna linia: zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu znak równości klucz
Kolejna linia jest pusta.
Kolejna linia: zbior znak równości otwarcie kwadratowego nawiasu 7, 2, 1, 6, 8, 5, 3, 4 zamknięcie kwadratowego nawiasu
Kolejna linia: sortowanie podkreślnik przez wstawianie otwarcie nawiasu zbior zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior: zamknięcie cudzysłowu, zbior zamknięcie nawiasu
Swift
Widoczny jest scrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: def sortowanie podkreślnik przez podkreślnik wstawianie otwarcie nawiasu zbior zamknięcie nawiasu dwukropek
Kolejna linia: rozmiar znak równości len otwarcie nawiasu zbior zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: for i in range otwarcie nawiasu 1, rozmiar zamknięcie nawiasu dwukropek
Kolejna linia: klucz znak równości zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu
KOlejna linia: jot znak równości i minus 1
Kolejna linia jest pusta
Kolejna linia: while j zamknięcie trójkątnego nawiasu znak równości 0 and zbior otwarcie kwadratowego nawiasu j zamknięcie kwadratowego nawiasu zamknięcie trójkątnego nawiasu klucz dwukropek
Kolejna linia: zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasuj zamknięcie kwadratowego nawiasu
Kolejna linia: jot myślnik znak równości 1
Kolejna linia jest pusta.
Kolejna linia: zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu znak równości klucz
Kolejna linia jest pusta.
Kolejna linia: zbior znak równości otwarcie kwadratowego nawiasu 7, 2, 1, 6, 8, 5, 3, 4 zamknięcie kwadratowego nawiasu
Kolejna linia: sortowanie podkreślnik przez wstawianie otwarcie nawiasu zbior zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior: zamknięcie cudzysłowu, zbior zamknięcie nawiasu
Sortowanie przez wybieranie
Sortowanie przez wybieranie (z ang. selekszyn sort) to algorytm sortowania, który polega na wybieraniu najmniejszego (lub największego) elementu ze zbioru i umieszczeniu go na pierwszej pozycji. Następnie algorytm iteruje przez zbiór i dla każdego przejścia znajduje najmniejszy (lub największy) element spośród pozostałych elementów, a następnie zamienia go z aktualnie analizowaną pozycją w zbiorze danych. Jest mniej wydajny dla dużych zbiorów danych. Niemniej jednak jego skuteczność w wykorzystaniu przy małych zbiorach sprawia, że jest on sytuacyjnie użyteczny.
Dane wejściowe:
małe en należy do wielkie en - liczba elementów w sortowanym zbiorze,
de otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu - zbiór poddany sortowaniu o n‑elementach.
Dane wyjściowe:
de otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu - posortowany zbiór.
Zmienne pomocnicze:
i, jot należy do wielkie eN - zmienne do sterowania pętlą,
pmin należy do wielkie en - pozycja elementu minimalnego zbioru de otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu.
Lista kroków:
Przejdź przez cały zestaw danych, porównując sąsiednie elementy.
Jeśli sąsiadujące ze sobą elementy są w złej kolejności (np. element poprzedni jest większy od następnego), zamień je miejscami.
Powtórz krok 1 dla wszystkich pozostałych elementów, aż dotrzesz do ostatniej pary elementów.
Po zakończeniu pierwszej iteracji największy element powinien znaleźć się na końcu kolekcji.
Powtórz kroki 1‑4 dla n minus 1 elementów, gdzie n jest rozmiarem kolekcji.
Po zakończeniu wszystkich iteracji, cała kolekcja powinna być uporządkowana rosnąco.
Poniżej znajduje się schemat.
Opis schematu: Na górze znajduje się ramka z napisem: Start. Od niej prowadzi linia do ramki z napisem: jot strzałka do jot od jeden. Od tej ramki strzałka w dół do ramki jot jest mniejsze od n. Od tej ramki poprowadzone są dwie strzałki. Pierwsza do ramki z napisem: Koniec. Druga prowadzi do ramki ze wzorem i, strzałka od jeden do i. Od tej ramki prowadzi w dół strzałka do i jest mniejsze en. Od tej ramki prowadzą dwie strzałki. Pierwsza prowadzi do ramki z tekstem: d otwarcie nawiasu kwadratowego i zamknięcie nawiasu kwadratowego jest mniejsze od de otwarcie kwadratowego nawiasu i plus 1 zamknięcie kwadratowego nawiasu. Druga do jot strzałka w stronę jot od jot plus jeden. Od d otwarcie nawiasu kwadratowego i zamknięcie nawiasu kwadratowego jest mniejsze od de otwarcie kwadratowego nawiasu i plus 1 zamknięcie kwadratowego nawiasu prowadzą dwie strzałki. Pierwsza do ramki w tekstem de otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu strzałka w dwustronna de otwarcie nawiasu i plus 1 zamknięcie nawiasu. Druga do linii poprowadzonej od ramki w tekstem de otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu strzałka w dwustronna de otwarcie nawiasu i plus 1 zamknięcie nawiasu do i strzałka do i od i plus 1. Od i strzałka do i od i plus 1 poprowadzona jest strzałka do strzałki poprowadzonej od i do i strzałka od 1 a i jest mniejsze od en. Ta strzałka opisana jest cyfrą 2. Od ramki z napisem jot, do którego prowadzi strzałka od jot plus jeden poprowadzone jest linia do linii poprowadzonej od jot plus jeden do jot jest mniejsze od en.
C++
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: hasz include otwarcie trójkątnego nawiasu iostream zamknięcie trójkątnego nawiasu
Kolejna linia jest pusta.
Kolejna lista: void sortowaniePrzezWybor otwarcie nawiasu int zbior otwarcie kwadratowego nawiasu zamknięcie kawadratowego nawiasu,
Kolejna lista: int rozmiar zamknięcie nawiasu klamra otwierająca
Kolejna lista: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu rozmiar myślnik 1 średnik i plus plus zamknięcie nawiasu klamra otwierająca
Kolejna lista: int indeksMinimum znak równości i średnik
Kolejna lista: for otwarcie nawiasu int jot znak równości i + 1 średnik jot otwarcie trójkątnego nawiasu rozmiar średnik jot plus plus zamknięcie nawiasu klamra otwierająca
Kolejna lista: if otwarcie nawiasu zbior otwarcie kwadratowego nawiasu jot zamknięcie kawadratowego nawiasu otwarcie trójkątnego nawiasu zbior otwarcie kwadratowego nawiasu indeksMinimum zamknięcie kwadratowego nawiasu zamknięcie nawiasu klamra otwierająca
Kolejna lista: indeksMinimum znak równości jot; Kolejna lista: klamra zamykająca
Kolejna lista: klamra zamykająca
Kolejna linia jest pusta. Kolejna lista: int temp zbior otwarcie kwadratowego nawiasu i zamknięcie nawiasu kwadratowego średnik Kolejna lista: zbior otwarcie kwadratowego nawiasu i zamknięcie kawadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasu indeksMinimum zamknięcie nawiasu średnik
Kolejna lista: zbior otwarcie kwadratowego nawiasu indeksMinimum] znak równości temp średnik
Kolejna lista: klamra zamykająca
Kolejna lista: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: int main otwarcie nawiasu zamknięcie nawiasu klamra otwierająca
Kolejna linia: int zbior otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia: int rozmiar znak równości sizeof otwarcie nawiasu zbior zamknięcie nawiasu ukośnik sizeof otwarcie nawiasu zbior otwarcie kwadratowego nawiasu 0 zamknięcie kwadratowego nawiasu zamknięcie nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: sortowaniePrzezWybor otwarcie nawiasu zbior, rozmiar zamknięcie nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: std dwukropek dwukropek count otwarcie trójkątnego nawiasu otwarcie trójkątnego nawiasu „Posortowany zbior: otwarcie cudzysłowu średnik
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu rozmiar średnik i plus plus zamknięcie nawiasu klamra otwierająca
Kolejna llinia: std dwukropek dwukropek cout otwarcie trójkątnego nawiasu otwarcie trójkątnego nawiasu zbior otwarcie kwadratowego nawiasu i otwarcie kwadratowego nawiasu otwarcie trójkątnego nawiasu otwarcie trójkątnego nawiasu otwarcie cudzysłowu zamknięcie cudzysłowu średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: return 0 średnik
Kolejna lista: klamra zamykająca
C#
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: using System średnik
Kolejna linia jest pusta.
Kolejna linia: class Program
Kolejna linia: klamra otwierająca
Kolejna linia: static void Sortowanie PrzezWybor otwarcie nawiasu int otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu zbior klamra zamykająca
Kolejna linia: klamra otwierająca
Kolejna linia: int rozmiar znak równości zbiorkropka Length średnik
Kolejna linia jest pusta.
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawisu rozmiar myślnik 1 średnik i plus plus zamknięcie nawiasu
Kolejna linia: klamra otwierająca
Kolejna linia: int indeksMinimum znak równości i średnik
Kolejna linia jest pusta.
Kolejna linia: for otwarcie nawiasu int j znak równości i plus 1 średnik j otwarcie trójkątnego nawisu rozmiar średnik jot plus plus zamknięcie nawiasu
Kolejna linia: klamra otwierająca
Kolejna linia: if otwarcie nawiasu zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu otwarcie trójkątnego nawisu zbior otwarcie kwadratowego nawiasu indeksMinimum zamknięcie kwadratowego nawiasu zamknięcie nawiasu
Kolejna linia: klamra otwierająca
Kolejna linia: indeksMinimum znak równości jot średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: int temp znak równości zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu średnik
Kolejna linia: zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasu indeksMinimum zamknięcie kwadratowego nawiasu średnik
Kolejna linia: zbior otwarcie kwadratowego nawiasu indeksMinimum zamknięcie kwadratowego nawiasu znak równości temp średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: static void Main otwarcie nawiasu string otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu args zamknięcie nawiasu
Kolejna linia: klamra otwierająca
Kolejna linia: int otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu zbior znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia jest pusta.
Kolejna linia: SortowanieprzezWybor otwarcie nawisu zbior zamknięcie nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: Console kropka Write otwarcie nawisu otwarcie cudzysłowu Posortowany zbior dwukropek otwarcie cudzysłowu zamknięcie nawiasu średnik
Kolejna linia: foreach otwarcie nawisu int element in zbior zamknięcie nawiasu Kolejna linia: klamra otwierająca
Kolejna linia: Console kropka Write otwarcie nawisu element plus otwarcie cudzysłowu) średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Java
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: class Sortowanie PrzezWybor klamra otwierająca
Kolejna linia: static void sortowanie PrzezWybor nawias otwierający int otwarcie kwadratowego nawiasu nawias kwadratowy zamykający zbior nawias zamykający klamra otwierająca
Kolejna linia: int rozmiar znak równości zbior kropka length średnik
Kolejna linia jest pusta.
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu rozmiar - 1 średnik i plus plus zamknięcie nawiasu klamra otwierająca
Kolejna linia: int indeksMinimum znak równości i średnik
Kolejna linia jest pusta.
Kolejna linia: for otwarcie nawiasu int j znak równości i plus 1 średnik jot otwarcie trójkątnego nawiasu rozmiar średnik jot plus plus zamknięcie nawiasu klamra otwierająca
Kolejna linia: if otwarcie nawiasu zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu otwarcie trójkątnego nawiasu zbior otwarciecie kwadratowego nawiasu indeksMinimum zamknięcie kwadratowego nawiasu zamknięcie nawiasu klamra otwierająca
Kolejna linia: indeksMinimum znak równości jot średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: int temp znak równości zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu średnik
Kolejna linia: zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasu indeksMinimum zamknięcie kwadratowego nawiasu średnik
Kolejna linia: zbior otwarcie kwadratowego nawiasu indeksMinimum nawias kwadratowy zamykający znak równości temp średnik klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: public static void main otwarcie nawiasu String otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu args zamknięcie nawiasu klamra otwierająca
Kolejna linia: int otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu zbior znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia jest pusta.
Kolejna linia: sortowaniePrzezWybor otwarcie nawiasu zbior zamknięcie nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: System kropka out kropka print otwarcie nawiasu otwarcie nawiasu Posortowany zbior: otwarcie cudzysłowu zamknięcie nawiasu średnik
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średni i otwarcie trójkątnego nawiasu zbior kropka length średnik i plus plus zamknięcie nawiasu klamra otwierająca
Kolejna linia: System kropka out kropa print otwarcie nawiasu zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu plus otwarcie cudzysłowu zamknięcie cudzysłowu zamknięcie nawiasu średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Python
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: def sortowanie podkreślnik przez wybor otwarcie nawiasu zbior zamknięcie nawiasu dwukropek
Kolejna linia: rozmiar znak równości len otwarcie nawiasu zbior zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: for i in range otwarcie nawiasu rozmiar myślnik 1 zamknięcie nawiasu dwukropek
Kolejna linia: indeks podkreślnik minimum znak równości i
Kolejna linia jest pusta.
Kolejna linia: for j in range otwarcie nawiasu i plus 1 przecinek rozmiar zamknięcie nawiasu dwukropek
Kolejna linia: if zbior otwarcie kwadratowego nawiasu j zamknięcie kwadratowego nawiasu otwarcie trójkątnego nawiasu zbior otwarcie kwadratowego nawiasu indeks podkreślnik minimum zamknięcie kwadratowego nawiasu dwukropek
Kolejna linia: indeks podkreślnik minimum znak równości j
Kolejna linia jest pusta.
Kolejna linia: zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu, zbior otwarcie kwadratowego nawiasu indeks podkreślnik minimum] znak równości zbior
Kolejna linia: otwarcie kwadratowego nawiasu indeks ukośnik podkreślnik minimum zamknięcie kwadratowego nawiasu, zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu
Kolejna linia jest pusta.
Kolejna linia: zbior znak równości otwarcie kwadratowego nawiasu 7, 2, 1, 6, 8, 5, 3, 4 zamknięcie kwadratowego nawiasu
Kolejna linia: sortowanie podkreślnik przez podkreślnik wybor otwarcie nawiasu zbior zamknięcie nawiasu Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior dwukropek zamyknięcie cudzysłowu, zbior zamknięcie nawiasu
Swift
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: func sortowaniePrzezWybor otwarcie nawiasu podkreślnik zbior: inout otwarcie kwadratowego nawiasu Int zamknięcie kwadratowego nawiasu zamknięcie nawiasu klamra otwierająca
Kolejna linia: let rozmiar znak równości zbior kropka count
Kolejna linia jest pusta.
Kolejna linia: for i in 0 kropka kropka otwarcie trójkątnego nawiasu otwarcie nawiasu rozmiar myślnik 1 zamknięcie nawiasu klamra otwierająca
Kolejna linia: var indeksMinimum znak równości i
Kolejna linia jest pusta.
Kolejna linia: for j in otwarcie nawiasu i plus 1 zamknięcie nawiasu kropka kropka otwarcie trójkątnego nawiasu rozmiar klamra otwierająca
Kolejna linia: if zbior otwarcie kwadratowego nawiasu j zamknięcie kwadratowego nawiasu otwarcie trójkątnego nawiasu zbior otwarcie kwadratowego nawiasu indeksMinimum zamknięcie nawiasu kwadratowego klamra otwierająca
Kolejna linia: indeksMinimum znak równości jot
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: if indeksMinimum wykrzyknik znak równości i klamra otwierająca
Kolejna linia: zbior. swapAt otwarcie nawiasu i przecinek indeksMinimum nawias zamykający
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: var zbior znak równości otwarcie kwadratowego nawiasu 7, 2, 1, 6, 8, 5, 3, 4 zamknięcie kwadratowego nawiasu
Kolejna linia: sortowaniePrzezWybor otwarcie nawiasu end zbior zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior: otwarcie nawiasu zbior zamknięcie nawiasu zamknięcie cudzysłowu zamknięcie nawiasu
Powrót do spisu treściPowrót do spisu treści
2. Algorytmy sortujące działające na zasadzie „dziel i zwyciężaj”
Algorytmy sortujące działające na zasadzie “dziel i zwyciężaj”
Sortowanie szybkie
Sortowanie szybkie, znane również jako sortowanie Quicksort, to algorytm sortowania „dziel i zwyciężaj”. Algorytm polega na podziale zbioru na podzbiory na podstawie wybranego elementu, zwanego pivotem (z ang. punkt osiowy). Następnie elementy są porównywane z pivotem i przenoszone do odpowiednich podzbiorów (mniejszych i większych od niego). Proces podziału jest powtarzany rekurencyjnie dla każdego podzbioru, aż osiągnie się jednoelementowe podzbiory. Na końcu wszystkie podzbiory są łączone, tworząc w ten sposób posortowany zbiór. Sortowanie szybkie jest często stosowane ze względu na swoją wysoką wydajność.
Legenda:
Dane wejściowe
de otwarcie nawiasu kwadratowego zamknięcie nawiasu kwadratowego - zbiór danych z elementami do posortowania lewy należy do ce - indeks pierwszego elementu zbioru danych prawy należy do wielkie Ce - indeks ostatniego elementu zbioru danych
Dane wyjściowe
de otwarcie nawiasu kwadratowego zamknięcie nawiasu kwadratowego myślnik zbiór zawierający elementy posortowane rosnąco
Zmienne pomocnicze
Pivot - element podziałowy
i, jot należy do wielkie ce - indeksy
Lista kroków:
Wybierz element ze zbioru jako punkt odniesienia, który nazywamy osią (pivot). Może to być dowolny element, na przykład pierwszy, ostatni lub losowy element.
Podziel zbiór na dwie części: elementy mniejsze od osi i elementy większe od osi.
Przenieś wszystkie elementy mniejsze od osi na lewą stronę, a wszystkie elementy większe od osi na prawą stronę.
Rekurencyjnie zastosuj kroki 1‑3 dla obu podzbiorów, tj. dla zbioru elementów mniejszych od osi oraz dla zbioru elementów większych od osi.
Po zakończeniu rekurencyjnych wywołań sortowania, wszystkie podzbiory zostaną uporządkowane. Połącz podzbiory, umieszczając najpierw podzbiór elementów mniejszych od osi, następnie samą oś i na końcu podzbiór elementów większych od osi.
Poniżej widoczny jest schemat blokowy.
Opis schematu: Na górze schematu znajduje się napis start od niego prowadzi w dół strzałka do ramki z tekstem i es do i es strzałka od i pe plus i ka plus jeden przez dwa. Od tej ramki prowadzi w dół strzałka do równania i iks minus i pe jest większe od jeden. Od tej ramki prowadzą dwie strzałki. Pierwsza opisana jako Tak prowadzi do prostokąta z tekstem: sortuj podkreślnik przez podkreślnik scalanie w nawiasie i pe przecinek i es minus jeden. Druga strzałka prowadzi do strzałki poprowadzonej od sortuj podkreślnik przez podkreślnik scalanie w nawiasie i pe przecinek i es minus jeden do ramki z tekstem: i ka minus i es jest większe od zera. Od tej ramki poprowadzone są dwie strzałki. Pierwsza do ramki z tekstem sortuj podkreślnik przez podkreślnik scalanie w nawiasie i es przecinek i ka. Druga strzałka poprowadzona jest od strzałki poprowadzonej od sortuj podkreślnik przez podkreślnik scalanie w nawiasie i es przecinek i ka do ramki z tekstem: Scalaj w nawiasie i pe przecinek i es przecinek i ka. Od tej ramki poprowadzona jest w dół strzałka do ramki z napisem Koniec.
C plus plus
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: hasz include otwarcie trójkątnego nawiasu iostream zamknięcie trójkątnego nawiasu
Kolejna linia: using namespace std średnik
Kolejna linia jest pusta.
Kolejna linia: void sortowanieSzybkie otwarcie nawiasu int zbior otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu, int lewy, int prawy zamknięcie nawiasu klamra otwierająca
Kolejna linia: int i znak równości lewy, jot znak równości prawy średnik
Kolejna linia: int os znak równości zbior otwarcie kwadratowego nawiasu otwarcie nawiasu lewy plus prawy zamknięcie nawiasu ukośnik 2 zamknięcie kwadratowego nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: while otwarcie nawiasu i otwarcie trójkątnego nawiasu znak równości j zamknięcie nawiasu klamra otwierająca
Kolejna linia:while otwarcie nawiasu zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu otwarcie trójkątnego nawiasu os zamknięcie nawiasu
Kolejna linia: i plus plus średnik
Kolejna linia: while otwarcie nawiasu zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu zamknięcie trójkątnego nawiasu os zamknięcie nawiasu
Kolejna linia: jot myślnik myślnik‑średnik
Kolejna linia: if otwarcie nawiasu i otwarcie trójkątnego nawiasu znak równości jot zamknięcie nawiasu klamra otwierająca
Kolejna linia: swap otwarcie nawiasu zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu, zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu zamknięcie nawiasu średnik
Kolejna linia: i plus plus średnik
Kolejna linia: jot myślnik myślnik średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: if otwarcie nawiasu lewy otwarcie trójkątnego nawiasu j zamknięcie nawiasu Kolejna linia: sortowanieSzybkie otwarcie nawiasu zbior, lewy, jot zamknięcie nawiasu średnik Kolejna linia: if otwarcie nawiasu i otwarcie trójkątnego nawiasu prawy zamknięcie nawiasu Kolejna linia: sortowanieSzybkie otwarcie nawiasu zbior, i, prawy) średnik
klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: int main otwarcie nawiasu zamknięcie nawiasu klamra otwierająca
Kolejna linia: int zbior otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia: int en znak równości sizeof otwarcie nawiasu zbior zamknięcie nawiasu ukośnik sizeof otwarcie nawiasu zbior otwarcie kwadratowego nawiasu 0 zamknięcie kwadratowego nawiasu zamknięcie nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: sortowanieSzybkie otwarcie nawiasu zbior, 0, en myślnik 1 zamknięcie nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: cout otwarcie trójkątnego nawiasu otwarcie trójkątnego nawiasu „Posortowany zbior dwukropek
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu en średnik i plus plus zamknięcie nawiasu
Kolejna linia: cout otwarcie trójkątnego nawiasu otwarcie trójkątnego nawiasu zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu otwarcie trójkątnego nawiasu otwarcie trójkątnego nawiasu otwarcie cudzysłowu zamknięcie cudzysłowu średnik
Kolejna linia jest pusta.
Kolejna linia: return 0 średnik
Kolejna linia: klamra zamykająca
C hasz
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: using System średnik
Kolejna linia jest pusta.
Kolejna linia: class SortowanieSzybkie klamra otwierająca
Kolejna linia: static void Sortowanie otwarcie nawiasu int zbior otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu, int lewy, int prawy zamknięcie nawiasu klamra otwierająca
Kolejna linia: int i znak równości lewy, jot znak równości prawy średnik
Kolejna linia: int os znak równości zbior otwarcie kwadratowego nawiasu otwarcie nawiasu lewy plus prawy zamknięcie nawiasu ukośnik 2 zamknięcie kwadratowego nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: while otwarcie nawiasu i otwarcie trójkątnego nawiasu znak równości j zamknięcie nawiasu klamra otwierająca
Kolejna linia: while otwarcie nawiasu zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu otwarcie trójkątnego nawiasu os zamknięcie nawiasu
Kolejna linia: i plus plus średnik
Kolejna linia: while otwarcie nawiasu zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu zamknięcie trójkątnego nawiasu os zamknięcie nawiasu
Kolejna linia: jot myślnik myślnik średnik
Kolejna linia: if otwarcie nawiasu i otwarcie trójkątnego nawiasu znak równości jot zamknięcie nawiasu klamra otwierająca
Kolejna linia: int temp znak równości zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu średnik zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu średnik
Kolejna linia: zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu znak równości temp średnik
Kolejna linia: i plus plus średnik
Kolejna linia: j myślnik myślnik średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: if otwarcie nawiasu lewy otwarcie trójkątnego nawiasu jot zamknięcie nawiasu
Kolejna linia: Sortowanie otwarcie nawiasu zbior, lewy, jot zamknięcie nawiasu średnik
Kolejna linia: if otwarcie nawiasu i otwarcie trójkątnego nawiasu prawy zamknięcie nawiasu
Kolejna linia: Sortowanie otwarcie nawiasu zbior, i, prawy zamknięcie nawiasu średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: static void Main otwarcie nawiasu zamknięcie nawiasu klamra otwierająca
Kolejna linia: int zbior otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia: int n znak równości zbior kropka Lengthśrednik
Kolejna linia jest pusta.
Kolejna linia: Sortowanie otwarcie nawiasu zbior, 0, en myślnik 1 zamknięcie nawiasu średnik Kolejna linia jest pusta.
Kolejna linia: Console kropka Write otwarcie nawiasu „Posortowany zbior otwarcie cudzysłowu zamknięcie cudzysłowu zamknięcie nawiasu średnik Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu en średnik i plus plus zamknięcie nawiasu
Kolejna linia: Console kropka Write otwarcie nawiasu zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu plus otwarcie cudzysłowu zamknięcie cudzysłowu zamknięcie nawiasu średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Java
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: public class QuickSort klamra otwierająca
Kolejna linia: public static void quicksort otwarcie nawiasu int otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu zbior, int lewy, int prawy zamknięcie nawiasu klamra otwierająca
Kolejna linia: int i znak równości lewy, jot znak równości prawy średnik
Kolejna linia: int os znak równości zbior otwarcie kwadratowego nawiasu otwarcie nawiasu lewy plus prawy zamknięcie nawiasu ukośnik 21 średnik
Kolejna linia jest pusta.
Kolejna linia: while otwarcie nawiasu i otwarcie trójkątnego nawiasu znak równości jot zamknięcie nawiasu klamra otwierająca
Kolejna linia: while otwarcie nawiasu zbior otwarcie kwadratowego nawiasu i] otwarcie trójkątnego nawiasu os zamknięcie nawiasu
Kolejna linia: i plus plus średnik
Kolejna linia: while otwarcie nawiasu zbior otwarcie kwadratowego nawiasu jot] zamknięcie trójkątnego nawiasu os zamknięcie nawiasu
Kolejna linia: jot myślnik myślnik średnik
Kolejna linia: if otwarcie nawiasu i otwarcie trójkątnego nawiasu znak równości jot zamknięcie nawiasu klamra otwierająca
Kolejna linia: int temp znak równości zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu średnik
Kolejna linia: zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasu jot] średnik
Kolejna linia: zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu znak równości temp średnik i plus plus średnik
Kolejna linia: jot myślnik myślnik średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: if otwarcie nawiasu lewy otwarcie trójkątnego nawiasu j zamknięcie nawiasu
Kolejna linia: quicksort otwarcie nawiasu zbior, lewy, j zamknięcie nawiasu średnik
Kolejna linia: if otwarcie nawiasu i otwarcie trójkątnego nawiasu prawy zamknięcie nawiasu
Kolejna linia: quicksort otwarcie nawiasu zbior, i, prawy zamknięcie nawiasu średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: public static void main otwarcie nawiasu String otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu args zamknięcie nawiasu klamra otwierająca
Kolejna linia: int otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu zbior znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia jest pusta.
Kolejna linia: quicksort otwarcie nawiasu zbior, 0, zbior kropka length myślnik 1 zamknięcie nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: System kropka out kropka print otwarcie nawiasu „Posortowany zbior: cudzysłów zamknij nawias średnik
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu zbior kropka length średnik i plus plus zamknięcie nawiasu
Kolejna linia: System kropka out kropka print otwarcie nawiasu zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu plus cudzysłów zamknięcie nawiasu średnik
Koljena linia: klamra zamykająca
Kolejna linie: klamra zamykająca
Python
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: def quicksort otwarcie nawiasu zbior, lewy, prawy zamknięcie nawiasu dwukropek
Kolejna linia: i znak równości lewy
Kolejna linia: jot znak równości prawy
Kolejna linia: os znak równości zbior otwarcie kwadratowego nawiasu otwarcie nawiasu lewy plus prawy zamknięcie nawiasu ukośnik ukośnik 2 zamknięcie kwadratowego nawiasu
Kolejna linia jest pusta.
Kolejna linia: while i otwarcie trójkątnego nawiasu znak równości jot dwukropek
Kolejna linia: while zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu otwarcie trójkątnego nawiasu os dwukropek
Kolejna linia: i plus znak równości 1
Kolejna linia: while zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu zamknięcie trójkątnego nawiasu os dwukropek
Kolejna linia: j minus znak równości 1
Kolejna linia: if i otwarcie trójkątnego nawiasu znak równości jot dwukropek
Kolejna linia: zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu, zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu, zbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu
Kolejna linia: i plus znak równości 1
Kolejna linia: jot - znak równości 1
Kolejna linia jest pusta.
Kolejna linia: if lewy otwarcie trójkątnego nawiasu jot dwukropek
Kolejna linia: quicksort otwarcie nawiasu zbior, lewy, jot zamknięcie nawiasu
Kolejna linia: if i otwarcie trójkątnego nawiasu prawy:
Kolejna linia: quicksort otwarcie nawiasu zbior, i, prawy zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: zbior znak równości otwarcie kwadratowego nawiasu 7, 2, 1, 6, 8, 5, 3, 4 zamknięcie kwadratowego nawiasu
Kolejna linia: quicksort otwarcie nawiasu zbior, 0, len otwarcie nawiasu zbior zamknięcie nawiasu minus 1 zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu cudzysłów Posortowany zbior dwukropek cudzysłów, zbior zamknięcie nawiasu
Swift
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: func quicksort otwarcie nawiasu podkreślnik zbior dwukropek inout nawias kwadratowy otwierający Int nawias kwadratowy zamykający, podkreślnik lewy dwukropek Int, prawy dwukropek Int nawias zamykający klamra otwierająca
Kolejna linia: var i znak równości lewy przecinek jot znak równości prawy
Kolejna linia: let os znak równości zbior nawias kwadratowy otwierający otwarcie nawiasu lewy plus prawy nawias zamykający ukośnik 2 nawias kwadratowy zamykający
Kolejna linia jest pusta.
Kolejna linia: while i nawias trójkątny otwierający znak równości j klamra otwierająca
Kolejna linia: while zbior nawias kwadratowy otwierający i nawias kwadratowy zamykający nawias trójkątny otwierający os klamra otwierająca
Kolejna linia: i plus znak równości 1
Kolejna linia: klamra zamykająca
Kolejna linia: while zbior nawias kwadratowy otwierający jot nawias kwadratowy zamykający nawias trójkątny zamykający os klamra otwierająca
Kolejna linia: jot myślnik znak równości 1
Kolejna linia: klamra zamykająca
Kolejna linia: if i nawias trójkątny otwierający znak równości j klamra otwierająca
Kolejna linia: zbior kropka swapAt otwarcie nawiasu i przecinek jot nawias zamykający
Kolejna linia: i plus znak równości 1
Kolejna linia: jot myślnik znak równości 1
Kolejna linia: klamra zamykająca Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: if lewy nawias trójkątny otwierający jot klamra otwierająca
Kolejna linia: klamra zamykająca
Kolejna linia: quicksort otwarcie nawiasu end zbior przecinek lewy przecinek jot nawias zamykający Kolejna linia: if i nawias trójkątny otwierający prawy klamra otwierająca
Kolejna linia: quicksort otwarcie nawiasu end zbior przecinek i przecinek prawy nawias zamykający
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: var zbior znak równości nawias kwadratowy otwierający 7, 2, 1, 6, 8, 5, 3, 4 nawias kwadratowy zamykający Kolejna linia jest pusta.
Kolejna linia: quicksort otwarcie nawiasu end zbior przecinek 0 przecinek zbior kropka count 1 nawias zamykający
Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior dwukropek ukośnik otwarcie nawiasu zbior nawias zamykający zamknięcie cudzysłowu nawias zamykający
Sortowanie przez scalanie
Sortowanie przez scalanie, określane też zamiennie angielską nazwą merge sort, to algorytm sortowania oparty na koncepcji „dziel i zwyciężaj”, który polega na podziale zbioru na mniejsze podzbiory, sortowaniu ich niezależnie, a następnie scalaniu posortowanych podzbiorów w celu uzyskania ostatecznie posortowanego zbioru. Na początku zbiór jest rekurencyjnie dzielony na dwie połowy, aż do momentu, gdy każda połowa zawiera tylko jeden element. Następnie poszczególne elementy są porównywane i łączone w pary, tworząc posortowane dwuelementowe podzbiory. Proces scalania jest powtarzany rekurencyjnie, do momentu powstania pełnego i posortowanego zbioru. Sortowanie przez scalanie jest mniej wydajne od innych algorytmów sortowania na małych zbiorach, lecz jego stabilność i wydajność na większych zbiorach czynią go popularnym wyborem dla tego typu danych.
Legenda:
Dane wejściowe
de otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu myślnik sortowany zbiór danych
ipe należy do en myślnik indeks pierwszego elementu młodszego podzbioru
ika należy do eN myślnik indeks ostatniego elementu starszego podzbioru
Dane wyjściowe
de otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu myślnik posortowany zbiór
Zmienne pomocnicze
ies należy do eN myślnik indeks pierwszego elementu w starszym podzbiorze
Lista kroków:
Utwórz nową tablicę lub listę, która będzie przechowywać scalone elementy.
Porównuj elementy z obu połówek, zaczynając od ich początków.
Dodawaj mniejszy element do scalanej tablicy/listy.
Jeśli jedna z połówek zostanie już w pełni przeanalizowana, dodaj pozostałe elementy z drugiej połowy do scalanej tablicy/listy.
Powtarzaj te kroki, aż obie połówki zostaną w pełni rozwiązane i wszystkie elementy zostaną umieszczone w scalonej tablicy/liście.
Widoczna jest ilustracja przedstawiająca schemat blokowy.
Opis schematu: Na górze znajduje się ramka z napisem start. Od tej ramki prowadzi w dół linia do ramki z tekstem i strzałka do i od lewy plus prawy przez dwa. Od tej ramki prowadzi w dół strzałka do ramki z tekstem piwot do piwot strzałka od de otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu, poniżej de otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu do którego prowadzi strzałka od de otwarcie kwadratowego nawiasu prawy zamknięcie kwadratowego nawiasu. Od tej ramki prowadzi w dół strzałka do ramki z tekstem jot do którego prowadzi strzałka od napisu lewy. Od tej ramki prowadzi strzałka do ramki z tekstem i jest mniejsze od prawy. Od tej ramki poprowadzone są dwie strzałki. Pierwsza, opisana jako tak, prowadzi do ramki z tekstem de otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu jest mniejsze od piwot. Od tej ramki poprowadzone są dwie strzałki. Pierwsza, opisana jako tak, prowadzi do ramki z tekstem de otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu dwustronna strzałka de otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu. Druga do strzałki poprowadzonej od de otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu dwustronna strzałka de otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu do i, strzałka do i od i plus jeden. Od tej ramki poprowadzona jest strzałka do strzałki poprowadzonej od jot do jot strzałka od lewy a i jest mniejsze od prawy. Druga strzałka poprowadzona od i jest mniejsze od pracy prowadzi do ramki z tekstem: de otwarcie kwadratowego nawiasu prawy zamknięcie kwadratowego nawiasu strzałka do de otwarcie kwadratowego nawiasu prawy zamknięcie kwadratowego nawiasu od de otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu, poniżej de otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu strzałka do de otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu od piwot. Od tej ramki prowadzi strzałka do ramki z tekstem: lewy jest mniejszy niż jot minus 1. Od tej ramki prowadzą dwie strzałki. Pierwsza, opisana jako tak do ramki z napisem sortuj podkreślnik szybko otwarcie nawiasu lewy przecinek jot minus jeden zamknięcie nawiasu. Druga do strzałki poprowadzonej od sortuj podkreślnik szybko otwarcie nawiasu lewy przecinek jot minus jeden zamknięcie nawiasu do jot plus jeden jest mniejsze od prawy. Od tej ramki poprowadzone są dwie strzałki. Pierwsza, opisana tak, prowadzi do ramki z tekstem sortuj podkreślnik szybko otwarcie nawiasu jot plus jeden przecinek prawy zamknięcie nawiasu. Druga do strzałki poprowadzonej od sortuj podkreślnik szybko otwarcie nawiasu jot plus jeden przecinek prawy zamknięcie nawiasu do ramki z napisem koniec.
C plus plus
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: hasz include otwarcie trójkątnego nawiasu iostream zamknięcie trójkątnego nawiasu
Kolejna linia: using namespace std średnik
Kolejna linia jest pusta.
Kolejna linia: void scal otwarcie nawiasu int zbior kwadratowy nawias otwierający zamknięcie kwadratowego nawiasu, int lewy, int srodek, int prawy nawias zamykający klamra otwierająca
Kolejna linia: int i, jot, ka średnik
Kolejna linia: int rozmiar1 znak równości srodek - lewy plus 1 średnik
Kolejna linia: int rozmiar 2 znak równości prawy - Srodek średnik
Kolejna linia jest pusta.
Kolejna linia: int gwiazdka lewaCzesc znak równości new int kwadratowy nawias otwierający rozmiar1 nawias kwadratowy zamykający średnik
Kolejna linia: int* prawaCzesc znak równości new int kwadratowy nawias otwierający rozmiar 2 nawias kwadratowy zamykający średnik
Kolejna linia jest pusta.
Kolejna linia: for otwarcie nawiasu i znak równości 0 średnik i otwarcie trójkątnego nawiasu rozmiar l średnik i plus plus nawias zamykający
Kolejna linia: lewaCzesc kwadratowy nawias otwierający i nawias kwadratowy zamykający znak równości zbior kwadratowy nawias otwierający lewy plus i zamknięcie kwadratowego nawiasu średnik
Kolejna linia: for nawias otwierający jot znak równości 0 średnik j otwarcie trójkątnego nawiasu rozmiar2 średnik jot plus plus nawias zamykający prawa Czesc kwadratowy nawias otwierający jot nawias kwadratowy zamykający znak równości zbior nawias kwadratowy otwierający srodek plus 1 plus jot nawias kwadratowy zamykający średnik
Kolejna linia jest pusta.
Kolejna linia: i znak równości 0 średnik
Kolejna linia: jot znak równości 0 średnik
Kolejna linia: ka znak równości lewy średnik
Kolejna linia jest pusta.
Kolejna linia: while otwarcie nawiasu i nawias trójkątny otwierający rozmiar l end end jot nawias trójkątny otwierający rozmiar2 nawias zamykający klamra otwierająca
Kolejna linia: if otwarcie nawiasu lewa czesc kwadratowy nawias otwierający i nawias kwadratowy zamykający <znak równości prawaCzesc kwadratowy nawias otwierający j nawias kwadratowy zamykający nawias zamykający klamra otwierająca
Kolejna linia: zbior kwadratowy nawias otwierający k nawias kwadratowy zamykający znak równości lewaCzesc kwadratowy nawias otwierający i nawias kwadratowy zamykający średnik
Kolejna linia: i plus plus średnik
Kolejna linia: klamra zamykająca else klamra otwierająca
Kolejna linia: zbior kwadratowy nawias otwierający ka nawias kwadratowy zamykający znak równości prawaCzesc kwadratowy nawias otwierający jot nawias kwadratowy zamykający średnik
Kolejna linia: jot plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia: ka plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: while otwarcie nawiasu i nawias trójkątny otwierający rozmiarl nawias zamykający klamra otwierająca
Kolejna linia: zbior otwarcie kwadratowego nawiasu ka zamknięcie kwadratowego nawiasu znak równości lewaCzesc kwadratowy nawias otwierający i kwadratowy nawias zamykający średnik
Kolejna linia: i plus plus średnik
Kolejna linia: ka plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: while otwarcie nawiasu jot nawias trójkątny otwierający rozmiar2 nawias zamykający klamra otwierająca
Kolejna linia: zbior kwadratowy nawias otwierający ka nawias kwadratowy zamykający znak równości prawaCzesc kwadratowy nawias otwierający jot nawias kwadratowy zamykający średnik
Kolejna linia: jot plus plus średnik
Kolejna linia: ka plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: delete kwadratowy nawias otwierający nawias kwadratowy zamykający lewaCzesc średnik
Kolejna linia: delete kwadratowy nawias otwierający nawias kwadratowy zamykający prawaCzesc średnik
Kolejna linia: zamykająca
Kolejna linia jest pusta.
Kolejna linia: void sortowaniePrzezScalanie otwarcie nawiasu int zbior kwadratowy nawias otwierający nawias kwadratowy zamykający, int lewy, int prawy nawias zamykający klamra otwierająca
Kolejna linia: if otwarcie nawiasu lewy nawias trójkątny otwierający prawy nawias zamykający klamra otwierająca
Kolejna linia: int srodek znak równości lewy plus otwarcie nawiasu prawy - lewy nawias zamykający ukośnik 2 średnik
Kolejna linia jest pusta.
Kolejna linia: sortowaniePrzezScalanie otwarcie nawiasu zbior, lewy, srodek nawias zamykający średnik
Kolejna linia: sortowaniePrzezScalanie otwarcie nawiasu zbior, srodek plus 1, prawy nawias zamykający średnik
Kolejna linia: scal otwarcie nawiasu zbior, lewy, srodek, prawy nawias zamykający średnik
Kolejna linia: klamra zamykająca
Kolejna linia: int main otwarcie nawiasu nawias zamykający klamra otwierająca
Kolejna linia: int zbior kwadratowy nawias otwierający nawias kwadratowy zamykający znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia: int rozmiar znak równości sizeof otwarcie nawiasu zbior nawias zamykający ukośnik sizeof otwarcie nawiasu zbior nawias kwadratowy otwierający 0 nawias kwadratowy zamykający nawias zamykający średnik
Kolejna linia jest pusta.
Kolejna linia: sortowaniePrzezScalanie otwarcie nawiasu zbior, 0, rozmiar myślnik 1 nawias zamykający średnik
Kolejna linia jest pusta.
cout nawias trójkątny otwierający nawias trójkątny otwierający otwarcie cudzysłowu Kolejna linia: Posortowany zbior dwukropek zamknięcie cudzysłowu średnik
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i nawias trójkątny otwierający rozmiar średnik i plus plus) klamra otwierająca Kolejna linia: cout nawias trójkątny otwierający nawias trójkątny otwierający zbior kwadratowy nawias otwierający i nawias kwadratowy zamykający nawias trójkątny otwierający otwarcie cudzysłowu zamknięcie cudzysłowu średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: return 0 średnik
C hasz
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: using System średnik
Kolejna linia jest pusta.
Kolejna linia: class Sortowanie PrzezScalanie klamra otwierająca
Kolejna linia: static void Scal nawias otwierający int nawias kwadratowy otwierający nawias kwadratowy zamykający zbior, int lewy, int srodek, int prawy nawias zamykający klamra otwierająca
Kolejna linia: int rozmiar1 znak równości srodek myślnik lewy plus 1 średnik
Kolejna linia: int rozmiar2 znak równości prawy myślnik Srodek średnik Kolejna linia jest pusta.
Kolejna linia: int nawias kwadratowy otwierający nawias kwadratowy zamykający lewaCzesc znak równości new int nawias kwadratowy otwierający rozmiar1 nawias kwadratowy zamykający średnik int nawias kwadratowy otwierający nawias kwadratowy zamykający prawaCzesc znak równości new int nawias kwadratowy otwierający rozmiar2 nawias kwadratowy zamykający średnik
Kolejna linia jest pusta.
Kolejna linia: for nawias otwierający int i znak równości 0; i nawias trójkątny otwierający rozmiar1 średnik i plus plus nawias zamykający
Kolejna linia: lewaCzesc nawias kwadratowy otwierający i nawias kwadratowy zamykający znak równości zbior nawias kwadratowy otwierający lewy plus i nawias kwadratowy zamykający średnik
Kolejna linia: for nawias otwierający int jot znak równości 0; j nawias trójkątny otwierający rozmiar2 średnik jot plus plus nawias zamykający
Kolejna linia: prawaCzesc nawias kwadratowy otwierający jot nawias kwadratowy otwierający znak równości zbior nawias kwadratowy otwierający srodek plus 1 plus j nawias kwadratowy zamykający średnik Kolejna linia jest pusta.
Kolejna linia: int x znak równości 0, y znak równości 0, ka znak równości lewy średnik
Kolejna linia jest pusta.
Kolejna linia: while nawias otwierający x nawias trójkątny otwierający rozmiar l end end y nawias trójkątny otwierający rozmiar 2 nawias zamykający klamra otwierająca
Kolejna linia: if nawias otwierający lewaczesc nawias kwadratowy otwierający x nawias kwadratowy zamykający nawias trójkątny otwierający znak równości prawaCzesc nawias kwadratowy otwierający igrek nawias kwadratowy zamykający nawias zamykający klamra otwierająca
Kolejna linia: zbior nawias kwadratowy otwierający ka nawias kwadratowy zamykający znak równości lewaCzesc nawias kwadratowy otwierający x nawias kwadratowy zamykający średnik
Kolejna linia: x plus plus średnik
Kolejna linia: klamra zamykająca else klamra otwierająca
Kolejna linia: zbior otwarcie kwadratowego nawiasu ka nawias kwadratowy zamykający znak równości prawaCzesc otwarcie kwadratowego nawiasu igrek nawias kwadratowy zamykający średnik
Kolejna linia: igrek plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia: ka plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: while nawias otwierający x nawias trójkątny otwierający rozmiar1 nawias zamykający klamra otwierająca
Kolejna linia: zbior nawias kwadratowy otwierający ka nawias kwadratowy zamykający znak równości lewaCzesc nawias kwadratowy otwierający x nawias kwadratowy zamykający średnik
Kolejna linia: x plus plus średnik
Kolejna linia: ka plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: while nawias otwierający igrek nawias trójkątny otwierający rozmiar2 nawias zamykający klamra otwierająca
Kolejna linia: zbior nawias kwadratowy otwierający ka nawias kwadratowy zamykający znak równości prawaCzesc nawias kwadratowy otwierający igrek nawias kwadratowy zamykający średnik
Kolejna linia: igrek plus plus średnik
Kolejna linia: ka plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: static void Sortowanie PrzezScalanieRek nawias otwierający int nawias kwadratowy otwierający nawias kwadratowy zamykający zbior, int lewy, int prawy nawias zamykający klamra otwierająca
Kolejna linia: if nawias otwierający lewy nawias trójkątny otwierający prawy nawias zamykający klamra otwierająca
Kolejna linia: int srodek znak równości nawias otwierający lewy plus prawy nawias zamykający ukośnik 2 średnik
Kolejna linia jest pusta.
Kolejna linia: SortowaniePrzezScalanieRek nawias otwierający zbior, lewy, srodek nawias zamykający średnik
Kolejna linia: SortowaniePrzezScalanieRek nawias otwierający zbior, srodek plus 1, prawy nawias zamykający; Kolejna linia jest pusta.
Kolejna linia: Scal nawias otwierający zbior, lewy, srodek, prawy nawias zamykający średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: static void Main nawias otwierający nawias zamykający klamra otwierająca
Kolejna linia: int nawias kwadratowy otwierający nawias kwadratowy zamykający zbior znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia jest pusta.
Kolejna linia: SortowaniePrzezScalanieRek nawias otwierający zbior, 0, zbior kropka Length myślnik 1 nawias zamykający średnik
Kolejna linia jest pusta.
Kolejna linia: Console kropka Write nawias otwierający otwarcie cudzysłowu Posortowany zbior dwukropek cudzysłów nawias zamykający średnik
Kolejna linia: for nawias otwierający int i znak równości 0 średnik i nawias trójkątny otwierający zbior kropka Length; i plus plus nawias zamykający klamra otwierająca
Kolejna linia: Console kropka Write nawias otwierający zbior nawias kwadratowy otwierający i nawias kwadratowy zamykający plus cudzysłów nawias zamykający średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Java
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: public class SortowaniePrzezScalanie klamra otwierająca
Kolejna linia: static void scal otwarcie nawiasu int otwarcie kwadratowego nawiasu zamkniecie kwadratowego nawiasu zbior przecinek int lewy przecinek int srodek przecinek int prawy zamknięcie nawiasu klamra otwierająca
Kolejna linia: int rozmiari srodek lewy plus 1 średnik
Kolejna linia: int rozmiar2 prawy - srodek średnik Kolejna linia jest pusta.
Kolejna linia: int otwarcie kwadratowego nawiasu zamkniecie kwadratowego nawiasu lewaczesc znak równości new int otwarcie kwadratowego nawiasu rozmiari zamkniecie kwadratowego nawiasu średnik Kolejna linia: int otwarcie kwadratowego nawiasu zamkniecie kwadratowego nawiasu prawaCzesc znak równości new int otwarcie kwadratowego nawiasu rozmiar2 zamkniecie kwadratowego nawiasu średnik Kolejna linia jest pusta.
Kolejna linia: for otwarcie nawiasu int i znak równości 0; 1 otwarcie trójkątnego nawiasu rozmiar i średnik 1 plus plus)
Kolejna linia: lewaCzesc otwarcie kwadratowego nawiasu 1 zamkniecie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasu lewy plus 1 zamkniecie kwadratowego nawiasu średnik Kolejna linia: for otwarcie nawiasu int jot znak równości 0 średnik j otwarcie trójkątnego nawiasu rozmiar2 średnik jot plus plus zamknięcie nawiasu
Kolejna linia: prawaCzesc otwarcie kwadratowego nawiasu jot] znak równości zbior otwarcie kwadratowego nawiasu srodek plus 1 plus Jot zamkniecie kwadratowego nawiasu średnik Kolejna linia jest pusta.
Kolejna linia: int 1 znak równości 0 przecinek j znak równości 0 przecinek ka znak równości lewy średnik Kolejna linia jest pusta.
Kolejna linia: while otwarcie nawiasu 1 otwarcie trójkątnego nawiasu rozmiar i end end jot otwarcie trójkątnego nawiasu rozmiar2 zamknięcie nawiasu otwarcie klamry
Kolejna linia: if otwarcie nawiasu lewaczesc otwarcie kwadratowego nawiasu 1 zamkniecie kwadratowego nawiasu otwarcie trójkątnego nawiasu znak równości prawaczesc otwarcie kwadratowego nawiasu jot zamkniecie kwadratowego nawiasu zamknięcie nawiasu klamra otwierająca
Kolejna linia: zbior otwarcie kwadratowego nawiasu ka zamkniecie kwadratowego nawiasu znak równości lewaCzesc otwarcie kwadratowego nawiasu 1 zamkniecie kwadratowego nawiasu średnik Kolejna linia: i plus plus średnik
Kolejna linia: klamra zamykająca else klamra otwierająca
Kolejna linia: zbior otwarcie kwadratowego nawiasu ka zamkniecie kwadratowego nawiasu znak równości prawaCzesc otwarcie kwadratowego nawiasu jot zamkniecie kwadratowego nawiasu średnik
Kolejna linia: jot plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia: ka plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: while o twarcie nawiasu1 otwarcie trójkątnego nawiasu rozmiari zamknięcie nawiasu klamra otwierająca Kolejna linia: zbior otwarcie kwadratowego nawiasu ka zamkniecie kwadratowego nawiasu znak równości lewaczesc otwarcie kwadratowego nawiasu 1 zamkniecie kwadratowego nawiasu średnik Kolejna linia: 1 plus plus średnik
Kolejna linia: K plus plus średnik
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: while otwarcie nawiasu jot średnik rozmiar zamknięcie nawiasu klamra otwierająca
Kolejna linia: zbior otwarcie kwadratowego nawiasu ka zamkniecie kwadratowego nawiasu znak równości prawaCzesc otwarcie kwadratowego nawiasu Jot zamkniecie kwadratowego nawiasu średnik
Kolejna linia: Jot plus plus średnik
Kolejna linia: Ka plus plus średnik
Kolejna linia jest pusta.
Kolejna linia: static void sortowaniePrzezScalanie otwarcie nawiasu int otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu zbior, int lewy, int prawy zamknięcie nawiasu klamra otwierająca
Kolejna linia: if otwarcie nawiasu lewy otwarcie trójkątnego nawiasu prawy zamknięcie nawiasu klamra otwierająca
Kolejna linia: int srodek znak równości otwarcie nawiasu lewy plus prawy zamknięcie nawiasu ukośnik 2 średnik Kolejna linia jest pusta. sortowaniePrzezScalanie otwarcie nawiasu zbior przecinek lewy przecinek Srodek zamknięcie nawiasu średnik sortowaniePrzezScalanie otwarcie nawiasu zbior przecinek srodek plus 1 przecinek prawy zamknięcie nawiasu średnik
Kolejna linia jest pusta. scal otwarcie nawiasu zbior, lewy, srodek, prawy zamknięcie nawiasu średnik Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: public static void main otwarcie nawiasu String otwarcie kwadratowego nawiasu zamkniecie kwadratowego nawiasu args zamknięcie nawiasu otwarcie klamry
Kolejna linia: int otwarcie kwadratowego nawiasu zamkniecie kwadratowego nawiasu zbior znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia jest pusta.
Kolejna linia: sortowaniePrzezScalanie otwarcie nawiasu zbior, 0, zbior.length‑1 zamknięcie nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: System kropka out kropka print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior: otwarcie cudzysłowu zamknięcie nawiasu średnik
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik 1 otwarcie trójkątnego nawiasu zbior kropka length średnik i plus plus zamknięcie nawiasu otwarcie klamry
Kolejna linia: System kropka out kropka print otwarcie nawiasu zbior otwarcie kwadratowego nawiasu 1 zamkniecie kwadratowego nawiasu plus otwarcie cudzysłowu zamknięcie cudzysłowu zamknięcie nawiasu średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca Kolejna linia: klamra zamykająca
Python
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: def scal otwarcie nawiasu zbior, lewy, srodek, prawy zamknięcie nawiasu dwukropek Kolejna linia: rozmiar1 znak równości srodek lewy 1
Kolejna linia: rozmiar2 znak równości prawy - Srodek
Kolejna linia jest pusta.
Kolejna linia: lewaCzesc znak równości zbior otwarcie kwadratowego nawiasu lewy dwukropek srodek plus 1 zamknięcie kwadratowego nawiasu
Kolejna linia: prawaCzesc znak równości zbior otwarcie kwadratowego nawiasu srodek plus 1 dwukropek prawy plus 1 zamknięcie kwadratowego nawiasu
Kolejna linia jest pusta.
Kolejna linia: i znak równości0
Kolejna linia: jot znak równości 0
Kolejna linia: ka znak równości lewy
Kolejna linia jest pusta.
Kolejna linia: while i otwarcie trójkątnego nawiasu rozmiar l end jot otwarcie trójkątnego nawiasu rozmiar2:
Kolejna linia: if lewaCzesc otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu otwarcie trójkątnego nawiasu znak równości prawaCzesc otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu dwukropek
Kolejna linia: zbior otwarcie kwadratowego nawiasu ka zamknięcie kwadratowego nawiasu znak równości lewaCzesc otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu
Kolejna linia: i plus znak równości 1
Kolejna linia: else:
Kolejna linia: zbior otwarcie kwadratowego nawiasu ka zamknięcie kwadratowego nawiasu znak równości prawaCzesc otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu
Kolejna linia: jot plus znak równości 1
Kolejna linia: ka plus znak równości 1
Kolejna linia jest pusta.
Kolejna linia: while i otwarcie trójkątnego nawiasu rozmiar1:
Kolejna linia: zbior otwarcie kwadratowego nawiasu ka zamknięcie kwadratowego nawiasu znak równości lewaCzesc otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu
Kolejna linia: i plus znak równości 1
Kolejna linia: ka plus znak równości 1
Kolejna linia jest pusta.
Kolejna linia: while j otwarcie trójkątnego nawiasu rozmiar2 dwukropek
Kolejna linia: zbior otwarcie kwadratowego nawiasu ka zamknięcie kwadratowego nawiasu znak równości prawaCzesc otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu
Kolejna linia: jot plus znak równości 1
Kolejna linia: ka plus znak równości 1
Kolejna linia jest pusta.
Kolejna linia: def sortowanie podkreślnik przez podkreślnik scalanie otwarcie nawiasu zbior, lewy, prawy zamknięcie nawiasu dwukropek
Kolejna linia: if lewy otwarcie trójkątnego nawiasu prawy dwukropek
Kolejna linia: Srodek znak równości otwarcie nawiasu lewy plus prawy zamknięcie nawiasu ukośnik ukośnik 2
Kolejna linia jest pusta. sortowanie podkreślnik przez podkreślnik scalanie otwarcie nawiasu zbior, lewy, srodek zamknięcie nawiasu sortowanie podkreślnik przez podkreślnik scalanie otwarcie nawiasu zbior, srodek plus 1, prawy zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: scal otwarcie nawiasu zbior, lewy, srodek, prawy zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia jest pusta.
Kolejna linia: zbior znak równości otwarcie kwadratowego nawiasu 7, 2, 1, 6, 8, 5, 3, 4 zamknięcie kwadratowego nawiasu
Kolejna linia: sortowanie podkreślnik przez podkreślnik scalanie otwarcie nawiasu zbior, 0, len otwarcie nawiasu zbior zamknięcie nawiasu minus 1 zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu otwarcie nawiasu Posortowany zbior dwukropek zamknięcie nawiasu, zbior zamknięcie nawiasu
Swift
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: func scal nawias otwierający zbior dwukropek inout nawias kwadratowy otwierający Int nawias kwadratowy zamykający, podkreślnik lewy dwukropek Int przecinek podkreślnik srodek dwukropek Int przecinek podkreślnik prawy dwukropek Int nawias zamykający nawias kwadratowy otwierający Kolejna linia: let rozmiar 1 znak równości srodek myślnik lewy plus 1
Kolejna linia: let rozmiar 2 znak równości prawy myślnik srodek
Kolejna linia jest pusta.
Kolejna linia: var lewaczesc znak równości Array nawias otwierający zbior nawias kwadratowy otwierający lewy kropka kropka kropka srodek nawias kwadratowy zamykający zamknięcie nawiasu
Kolejna linia: var prawaczesc znak równości Array otwarcie nawiasu zbiornawias kwadratowy otwierający srodek plus 1 kropka kropka kropka prawy nawias kwadratowy zamykający zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: var i znak równości 0 przecinek jot znak równości 0 przecinek ka znak równości lewy
Kolejna linia jest pusta.
Kolejna linia: while i nawias trójkątny otwierający rozmiar 1 end end j nawias trójkątny otwierający rozmiar2 klamra otwierająca
Kolejna linia: if lewaCzesc nawias kwadratowy otwierający i nawias kwadratowy zamykający nawias trójkątny otwierający znak równości prawaCzesc nawias kwadratowy otwierający jot nawias kwadratowy zamykający klamra otwierająca
Kolejna linia: zbior nawias kwadratowy otwierający ka nawias kwadratowy zamykający znak równości lewaCzesc nawias kwadratowy otwierający i nawias kwadratowy zamykający
Kolejna linia: i plus znak równości 1
Kolejna linia: klamra zamykająca else klamra otwierająca
Kolejna linia: zbior nawias kwadratowy otwierający ka nawias kwadratowy zamykający znak równości prawaCzesc nawias kwadratowy otwierający jot nawias kwadratowy zamykający
Kolejna linia: jot plus znak równości 1
Kolejna linia: klamra zamykająca
Kolejna linia: ka plus 1
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: while i nawias trójkątny otwierający rozmiar1 klamra otwierająca
Kolejna linia: zbior nawias kwadratowy otwierający ka nawias kwadratowy zamykający znak równości lewaCzesc nawias kwadratowy otwierający i nawias kwadratowy zamykający
Kolejna linia: i plus znak równości 1
Kolejna linia: ka plus znak równości 1
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: while jot nawias trójkątny otwierający rozmiar2 klamra otwierająca Kolejna linia: zbior nawias kwadratowy otwierający ka nawias kwadratowy zamykający znak równości prawaCzesc nawias kwadratowy otwierający jot nawias kwadratowy zamykający
Kolejna linia: jot plus znak równości 1
Kolejna linia: ka plus znak równości1 Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: func sortowaniePrzezScalanie nawias otwierający podkreślnik zbior dwukropek inout nawias kwadratowy otwierający Int nawias kwadratowy otwierający przecinek podkreślnik lewy dwukropek Int przecinek podkreślnik prawy dwukropek Int nawias zamykający klamra otwierająca
Kolejna linia: if lewy nawias trójkątny otwierający prawy klamra otwierająca
Kolejna linia: let srodek znak równości nawias otwierający lewy + prawy zamknięcie nawiasu ukośnik 2 Kolejna linia jest pusta.
Kolejna linia: sortowaniePrzezScalanie nawias otwierający end zbior, lewy, srodek zamknięcie nawiasu Kolejna linia: sortowaniePrzezScalanie nawias otwierający end zbior, srodek plus 1 przecinek prawy zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: scal nawias otwierający end zbior przecinek lewy przecinek srodek przecinek prawy zamknięcie nawiasu
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca Kolejna linia jest pusta.
Kolejna linia: var zbior znak równości nawias kwadratowy otwierający 7, 2, 1, 6, 8, 5, 3, 4 nawias kwadratowy zamykający
Kolejna linia: sortowaniePrzezScalanie nawias otwierający end zbior przecinek 0 przecinek zbior kropka count myślnik 1 zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior dwukropek ukośnik nawias otwierający zbior zamknięcie nawiasu zamknięcie cudzysłowu zamknięcie nawiasu
Sortowanie bąbelkowe
Sortowanie bąbelkowe to prosty algorytm, który porównuje sąsiednie elementy w zestawie danych i zamienia je, jeżeli są w złej kolejności. Algorytm przechodzi wielokrotnie przez elementy zbioru, porównując i zamieniając elementy, do momentu aż cały zbiór zostanie posortowany. W każdej iteracji największy element przesuwa się na koniec kolekcji. Ten proces powtarza się, aż cały zbiór zostanie uporządkowany. Sortowanie bąbelkowe jest prostym i podstawowym algorytmem sortowniczym, ale ma ograniczoną wydajność dla dużych zbiorów danych. Mimo to może być użyteczne do sortowania małych zbiorów lub część bardziej złożonych algorytmów sortowania.
Dane wejściowe:
małe en należy do wielkie en - liczba elementów w sortowanym zbiorze danych,
de otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu - zbiór en‑elementowy poddany sortowaniu, z elementami o indeksach od 1 do n.
Dane wyjściowe:
de otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu - posortowany zbiór.
Zmienne pomocnicze:
i, jot należy do wielkie en - zmienne sterujące pętli.
Lista kroków:
1. Przejdź rzez cały zestaw danych, porównując sąsiednie elementy.
2. Jeśli sąsiadujące ze sobą elementy są w złej kolejności (np. element poprzedni jest większy od następnego), zamień je miejscami.
3. Powtórz krok 1 dla wszystkich pozostałych elementów, aż dotrzesz do ostatniej pary elementów.
4. Po zakończeniu pierwszej iteracji największy element powinien znaleźć się na końcu kolekcji.
5. Powtórz kroki 1‑4 dla n‑1 elementów, gdzie n jest rozmiarem kolekcji.
6. Po zakończeniu wszystkich iteracji, cała kolekcja powinna być uporządkowana rosnąco.
Poniżej znajduje się schemat blokowy.
Opis schematu: Na górze znajduje się ramka z napisem Start. Od niej prowadzi w dół strzałka do ramki z napisem jot do hot strzałka od 1. Od tej ramki prowadzi w dół strzałka do ramki z napisem jot jest mniejsze niż en. Od tej ramki poprowadzone są dwie strzałki. Pierwsza prowadzi do ramki z napisem Koniec. Druga, opisana jako tak, prowadzi do ramki z tekstem pe min do pe min strzałka od jot, poniżej i do i strzałka od jot plus 1. Od tej ramki poprowadzona jest w dół strzałka do ramki z tekstem i jest mniejsze, bądź równe en. Od tej ramki poprowadzone są dwie strzałki. Pierwsza do ramki z tekstem de w nawiasie kwadratowym pe min strzałka dwustronna de otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu. Od tej ramki prowadzi strzałka do ramki z tekstem jot do jot strzałka od jot plus 1. Od tej ramki prowadzi strzałka opisana jako jeden do linii wychodzącej z ramki jot do jot strzałka od jeden prowadzącej do jot jest mniejsze od en. Druga strzałka wychodząca od i jest mniejsze lub równe en opisana jest jako tak i prowadzi do ramki z tekstem de otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu jest mniejsze od de pe min. Od tej ramki poprowadzone są dwie strzałki. Pierwsza, opisana jako tak, do pe min do którego prowadzi strzałka od i. Druga do linii wychodzącej z pe min do którego prowadzi strzałka od i poprowadzona do i do i strzałka od i plus 1. Od tej ramki poprowadzona jest strzałka, opisana jako dwa, do strzałki poprowadzonej do i jest mniejsze, bądź równe en.
C plus plus
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: hasz include nawias trójkątny otwierający iostream nawias trójkątny zamykający
Kolejna linia: using namespace std średnik
Kolejna linia jest pusta.
Kolejna linia: void sortowanie Babelkowe otwarcie nawiasu int zbior nawias kwadratowy otwierający nawias kwadratowy zamykający, int rozmiar nawias zamykający klamra otwierająca
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i nawias trójkątny otwierający rozmiar minus 1 średnik i plus plus zamknięcie nawiasu klamra otwierająca
Kolejna linia: for otwarcie nawiasu int jot znak równości 0 średnik jot nawias trójkątny otwierający 0 średnik j nawias trójkątny otwierający rozmiar minus i minus 1 średnik jot plus plus zamknięcie nawiasu klamra otwierająca
Kolejna linia: if otwarcie nawiasu zbior nawias kwadratowy otwierający jot nawias kwadratowy zamykający nawias trójkątny zamykający zbior nawias kwadratowy otwierający jot plus 1 nawias kwadratowy zamykający zamknięcie nawiasu średnik
Kolejna linia: swap otwarcie nawiasu zbior nawias kwadratowy otwierający jot nawias kwadratowy zamykający, zbior nawias kwadratowy otwierający jot plus 1 nawias kwadratowy zamykający zamknięcie nawiasu średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: int main otwarcie nawiasu zamknięcie nawiasu klamra otwierająca
Kolejna linia: int zbior nawias kwadratowy otwierający nawias kwadratowy zamykający znak równości otwarcie nawiasu 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia: int rozmiar znak równości sizeof otwarcie nawiasu zbior zamknięcie nawiasu ukośnik sizeof otwarcie nawiasu zbior nawias kwadratowy otwierający 0 zamknięcie kwadratowego nawiasu zamknięcie nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: sortowanie Babelkowe otwarcie nawiasu zbior, rozmiar nawias zamykający średnik
Kolejna linia jest pusta.
Kolejna linia: cout nawias trójkątny otwierający nawias trójkątny otwierający otwarcie cudzysłowu Posortowany zbior dwukropek otwarcie cudzysłowu średnik
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i nawias trójkątny zamykający rozmiar średnik i plus plus zamknięcie nawiasu klamra otwierająca
Kolejna linia: cout nawias trójkątny otwierający nawias trójkątny otwierający zbior nawias kwadratowy otwierający i nawias kwadratowy zamykający nawias trójkątny otwierający nawias trójkątny otwierający
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: return 0 średnik
Kolejna linia: klamra zamykająca
C hasz
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: using System średnik
Kolejna linia jest pusta.
Kolejna linia: class SortowanieBabelkowe klamra otwierająca
Kolejna linia: static void sortowanieBabelkowe nawias otwierający int nawias kwadratowy otwierający nawias kwadratowy zamykający zbior nawias zamykający klamra otwierająca
Kolejna linia: int rozmiar znak równości zbior.Length średnik
Kolejna linia jest pusta.
Kolejna linia: for nawias otwierający int i nak równości 0 średnik i otwarcie trójkątnego nawiasu rozmiar minus 1 średnik i plus plus nawias zamykający klamra otwierająca
Kolejna linia: for nawias otwierający int jot nak równości 0 średnik jot otwarcie trójkątnego nawiasu rozmiar minus i minus 1 średnik j plus plus nawias zamykający klamra otwierająca
Kolejna linia: if nawias otwierający zbior nawias kwadratowy otwierający jot nawias kwadratowy zamykający nawias trójkątny zamykający zbior nawias kwadratowy otwierający jot plus 1 nawias kwadratowy zamykający nawias zamykający
Kolejna linia: int temp nak równości zbior nawias kwadratowy otwierający jot nawias kwadratowy zamykający średnik
Kolejna linia: zbior nawias kwadratowy otwierający jot nawias kwadratowy zamykający nak równości zbior nawias kwadratowy otwierający jot plus 1 nawias kwadratowy zamykający średnik
Kolejna linia: zbior nawias kwadratowy otwierający jot plus 1 nawias kwadratowy zamykający znak równości temp średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: static void Main nawias otwierający nawias zamykający klamra otwierająca
Kolejna linia: int nawias kwadratowy otwierający nawias kwadratowy zamykający zbior znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia jest pusta.
Kolejna linia: sortowanieBabelkowe nawias otwierający zbior nawias zamykający średnik
Kolejna linia jest pusta.
Kolejna linia: Console kropka Write nawias otwierający otwarcie cudzysłowu Posortowany zbior: otwarcie cudzysłowu nawias zamykający średnik
Kolejna linia: for nawias otwierający int i znak równości 0 średnik i otwarcie trójkątnego nawiasu zbior kropka Length średnik i plus plus nawias zamykający klamra otwierająca
Kolejna linia: Console kropka Write otwarcie nawiasu zbior nawias kwadratowy otwierający i zamknięcie kwadratowego nawiasu plus otwarcie cudzysłowu zamknięcie cudzysłowu nawias zamykający średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Java
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: public class Sortowanie Babelkowe klamra otwierająca
Kolejna linia: static void sortowanieBabelkowe otwarcie nawiasu int otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu zbior zamknięcie nawiasu klamra otwierająca
Kolejna linia: int rozmiar znak równości zbior kropka length średnik
Kolejna linia jest pusta.
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu rozmiar minus 1 średnik i plus plus zamknięcie nawiasu klamra otwierająca
Kolejna linia: for otwarcie nawiasu int jot znak równości 0 średnik jot otwarcie trójkątnego nawiasu rozmiar i
Kolejna linia: if otwarcie nawiasu zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu zamknięcie trójkątnego nawiasu zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu zamknięcie nawiasu klamra otwierająca
Kolejna linia: int temp znak równości zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu średnik
Kolejna linia: zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu średnik Kolejna linia: zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu znak równości temp średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia jest pusta.
Kolejna linia: public static void main otwarcie nawiasu String otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu args zamknięcie nawiasu klamra otwierająca
Kolejna linia: int otwarcie kwadratowego nawiasu zamknięcie kwadratowego nawiasu zbior znak równości klamra otwierająca 7, 2, 1, 6, 8, 5, 3, 4 klamra zamykająca średnik
Kolejna linia jest pusta. Kolejna linia: sortowanieBabelkowe otwarcie nawiasu zbior zamknięcie nawiasu średnik
Kolejna linia jest pusta.
Kolejna linia: System kropka out kropka print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbiordwukropek zamknięcie cudzysłowu zamknięcie nawiasu średnik
Kolejna linia: for otwarcie nawiasu int i znak równości 0 średnik i otwarcie trójkątnego nawiasu zbior kropka length średnik i plus plus zamknięcie nawiasu klamra otwierająca
Kolejna linia: System kropka out kropka print otwarcie nawiasuzbior otwarcie kwadratowego nawiasu i zamknięcie kwadratowego nawiasu plus cudzysłów) średnik
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Python
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: def sortowanie podkreślnik babelkowe otwarcie nawiasu zbior zamknięcie nawiasu dwukropek
Kolejna linia: rozmiar znak równości len otwarcie nawiasu zbior zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: for i in range otwarcie nawiasu rozmiar minus 1 zamknięcie nawiasu dwukropek
Kolejna linia: for j in range otwarcie nawiasu rozmiar minus i minus 1 zamknięcie nawiasu dwukropek
Kolejna linia: if zbior otwarcie kwadratowego nawiasu 1 zamknięcie kwadratowego nawiasu zamknięcie trójkątnego nawiasu zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu dwukropek
Kolejna linia: zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu, zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu znak równości zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu, zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu
Kolejna linia jest pusta.
Kolejna linia: zbior znak równości otwarcie kwadratowego nawiasu 7, 2, 1, 6, 8, 5, 3, 4 zamknięcie kwadratowego nawiasu
Kolejna linia: sortowanie podkreślnik babelkowe otwarcie nawiasu zbior zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior dwukropek zamknięcie cudzysłowu, zbior zamknięcie nawiasu
Kolejna linia: var Zolor znak równości otwarcie kwadratowego nawiasu 1, 4, 1, 0, 0, 5, 3, 4 zamknięcie kwadratowego nawiasu
Kolejna linia: sortowanieBabelkowe otwarcie nawiasu &zbior zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior dwukropek ukośnik otwarcie nawiasu zbior zamknięcie nawiasu zamknięcie cudzysłowu zamknięcie nawiasu
Swift
Widoczny jest skrin ekranu. Na grafice widać tekst kodu:
Pierwsza linia: func sortowanieBabelkowe otwarcie nawiasu podkreślnik zbior: inout otwarcie kwadratowego nawiasu Int zamknięcie kwadratowego nawiasu zamknięcie nawiasu klamra otwierająca
Kolejna linia: let rozmiar znak równości zbior kropka count
Kolejna linia jest pusta.
Kolejna linia: for i in 0 kropka kropka otwarcie trójkątnego nawiasu rozmiar minus 1 klamra otwierająca
Kolejna linia: for j in 0 kropka kropka otwarcie trójkątnego nawiasu rozmiar minus i 1 klamra otwierająca
Kolejna linia: if zbior otwarcie kwadratowego nawiasu jot zamknięcie kwadratowego nawiasu zamknięcie trójkątnego nawiasu zbior otwarcie kwadratowego nawiasu jot plus 1 zamknięcie kwadratowego nawiasu klamra otwierająca
Kolejna linia: zbior. swapAt otwarcie nawiasu jot przecinek jot plus 1 zamknięcie nawiasu
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: klamra zamykająca
Kolejna linia: var zbior znak równości otwarcie kwadratowego nawiasu 7, 2, 1, 6, 8, 5, 3, 4 zamknięcie kwadratowego nawiasu
Kolejna linia: sortowanieBabelkowe otwarcie nawiasu end zbior zamknięcie nawiasu
Kolejna linia jest pusta.
Kolejna linia: print otwarcie nawiasu otwarcie cudzysłowu Posortowany zbior dwukropek ukośnik otwarcie nawiasu zbior zamknięcie nawiasu zamknięcie cudzysłowu zamknięcie nawiasu