Algorytmy - Quick sort - Sortowanie szybkie

  Рет қаралды 84,702

kakaboc

kakaboc

7 жыл бұрын

Wyjaśnienie działania algorytmu quick sort.
średnia złożoność czasowa O(n log n), pesymistycznie O(n^2)
średnia złożoność pamięciowa O(log n), pesymistycznie O(n)

Пікірлер: 49
@adamt2174
@adamt2174 3 жыл бұрын
Szkoda, że już nie nagrywasz bo robiłeś SUPER ROBOTĘ!!
@mienislav
@mienislav 2 жыл бұрын
Bardzo dziękuję za ten film! Jutro mam kolokwium z algorytmów i struktur danych. Długo nie mogłem zrozumieć QS. Dzięki temu filmowi wszystko stało się jasne :)
@krowczyk9173
@krowczyk9173 Жыл бұрын
Cześć zdałeś?
@mienislav
@mienislav Жыл бұрын
@@krowczyk9173 Zdałem :) Nawet nie wiem, jak bardzo się cieszę, że do dzisiaj pamiętam, jak QS działa.
@pklt30
@pklt30 5 жыл бұрын
Genialne ! tak samo jak wszystkie inne filmiki! 100 % props
@pankrol5299
@pankrol5299 2 жыл бұрын
dawaj salto
@Decik1991
@Decik1991 4 жыл бұрын
Bardzo dobra robota ! tak trzymaj !
@jakubpotorak1454
@jakubpotorak1454 3 жыл бұрын
Dzięki bardzo, super tłumaczysz
@krzysztofkramarz5514
@krzysztofkramarz5514 5 жыл бұрын
dzięki! super wykład
@jakubzielinski7797
@jakubzielinski7797 4 жыл бұрын
Świetnie wytłumaczone
@adrianrussu6340
@adrianrussu6340 6 жыл бұрын
Super wytłumaczone, dzięki bardzo za ten filmik. Przyda się na kolosa ;-)
@pinholeeye6625
@pinholeeye6625 4 жыл бұрын
Wytłumaczone na chłopski rozum i napewno pomoże zrozumieć osobą które mają problem z tym algo. Ale algorytm działa trochę inaczej. Nie ma czegoś takiego jak bariera jest tylko i wyłącznie SWAP używając elementów low i high. Tak samo jeżeli chodzi o pamięć to minimalna wynosi O(log2 n) jak już powiedziałeś, a max to O(n) a nie O(1) - to wynika z struktury danych.
@sooooooooooundtrack
@sooooooooooundtrack 6 жыл бұрын
Dobra robota!
@moonchild4872
@moonchild4872 5 жыл бұрын
Dziękuję! :D
@TheQciap
@TheQciap 4 жыл бұрын
Klasa!!
@MarekTokarzCalisthenics
@MarekTokarzCalisthenics 10 ай бұрын
Przykładowy kod algorytmu (C++) + analiza aż do pierwszego ustawienia pivota (3) na właściwym miejscu zgodnie z tablicą z filmu: //KOD int partition(int arr[], int low, int high) { int pivot = arr[high]; // pivot - ostatnia liczba int i = (low - 1), temp; // i = low - 1: i to indeks o jeden mniejszy od dolnej granicy, na poczatku 0 (i=-1) for (int j = low; j temp = arr[0] => temp = 9 arr[i] = arr[j] => arr[0] = arr[1] => arr[0] = 1 arr[j] = temp => arr[1] = temp => arr[1] = 9 1 9 2 4 5 7 8 6 3 trzeci obieg for i = 0 j = 2 czy 2 < 3: TAK - wykonujemy ifa i = 1 j = 2 temp = arr[i] => temp = arr[1] => temp = 9 arr[i] = arr[j] => arr[1] = arr[2] => arr[1] = 2 arr[j] = temp => arr[2] = temp => arr[2] = 9 1 2 9 4 5 7 8 6 3 czwarty obieg for i = 1 j = 3 czy 4 < 3: NIE piąty obieg for i = 1 j = 4 czy 5 < 3: NIE szósty obieg for i = 1 j = 5 czy 7 < 3: NIE siódmy obieg for i = 1 j = 6 czy 8 < 3: NIE ósmy obieg for i = 1 j = 6 czy 6 < 3: NIE 1 2 9 4 5 7 8 6 3 KONIEC FORa: //ustawianie pivota na właściwej pozycji temp = arr[i + 1]; => temp = arr[1 + 1] => temp = arr[2] => temp = 9 arr[i + 1] = arr[high]; => arr[1 + 1] = arr[8] => arr[2] = 3 arr[high] = temp; => arr[8] = temp => arr[8] = 9 1 2 (3) 4 5 7 8 6 9 //pivot na właściwym miejscu return (i + 1); => return (1 + 1) => return (2); //pozycja pivota = 2 (trzeci indeks)
@albertpiekarski4569
@albertpiekarski4569 5 жыл бұрын
Dzięki.
@huskyhusky777
@huskyhusky777 4 жыл бұрын
w 2:15 brakuje informacji dla przypadku jeśli element będzie równy "pivotowi"
@milosh4851
@milosh4851 3 жыл бұрын
masz pomysł co zrobić w takim przypadku?
@milosh4851
@milosh4851 3 жыл бұрын
błagam odpowiedz
@huskyhusky777
@huskyhusky777 3 жыл бұрын
@@milosh4851 nadał Ci trzeba?
@milosh4851
@milosh4851 3 жыл бұрын
@@huskyhusky777 już sobie poradziłem ale dzięki
@placek0703
@placek0703 5 жыл бұрын
Kozak
@KoW
@KoW 5 жыл бұрын
No fajne
@lomix37
@lomix37 4 жыл бұрын
super
@holyshit922
@holyshit922 7 жыл бұрын
Tak sobie patrzyłem na zaproponowanie przeze mnie algorytmy sortujące i np do kubełków używają list więc może jeszcze na nie za wcześnie i lepiej zająć się sortowaniem danych w pliku (mało kto to pokazuje) a do algorytmów jak sortowanie przez zliczanie , pozycyjne czy kubełkowe wrócić po poznaniu podstawowych struktur danych jak stos, kolejka czy lista Przez to że wybrałeś Javę nie pokażesz jak zwalniać pamięć po węzłach struktur danych Jeżeli chodzi o sortowanie list to rozważyłbym procedurę wstawiającą w odpowiednie miejsce sortowanie przez scalanie i dla fanów quick sorta sortowanie szybkie dla list jednokierunkowych partycjonowanie Lomuto dla list dwukierunkowych partycjonowanie Hoare
@holyshit922
@holyshit922 7 жыл бұрын
Sortowanie danych w pliku o które mi chodziło dość często nazywają sortowaniem zewnętrznym Co to za sortowanie zewnętrzne gdyby udało się wczytać zawartość pliku do tablicy więc chodzi mi bardziej o przypadek gdy mamy z góry określoną ilość pamięci RAM na ogół mniejszą niż rozmiar sortowanego pliku
@lukasz-cpu2416
@lukasz-cpu2416 4 жыл бұрын
szkoda że już nie nagrywasz
@holyshit922
@holyshit922 6 жыл бұрын
Kiedyś mówiłeś o tym że można z algorytmy niestabilnego jakim jest np Quick Sort zrobić algorytm stabilny przy użyciu dodatkowej tablicy Mógłbyś coś więcej o tym nakręcić
@kolboch
@kolboch 6 жыл бұрын
Ostatnio faktycznie rzadko wrzucam filmy, postaram się trochę poprawić i nadrobić interesujące was tematy ;)
@marcinmosorzewski4754
@marcinmosorzewski4754 Жыл бұрын
Wszystko super, ale popracuj nad wymową :)
@jussticq7127
@jussticq7127 8 ай бұрын
a co jak beda te same cyfry
@dominikgasztych5126
@dominikgasztych5126 3 ай бұрын
jak sie zsunie 9 to jest pomiedzy 7 i 8 wiec nie działa sadge://
@holyshit922
@holyshit922 7 жыл бұрын
Jeśli chodzi o sortowanie tablic to proponuję zająć się tematami takimi jak Sortowanie przez zliczanie (counting sort ) Sortowanie pozycyjne (radix sort) Sortowanie kubełkowe (bucket sort) bo z tych które wymagają tylko porównań kluczy najważniejsze już omówiłeś Czekam też na sortowanie danych w pliku Niedawno chciałem sobie napisać program który sprowadzał się do sortowania jednak miałem zbyt mało pamięci aby wczytać dane to tablicy czy listy Jeżeli chodzi o sortowanie plików to można zrealizować to tak że w pliku tekstowym mamy linie z łańcuchami i chcemy posortować je alfabetycznie Dla testów możemy ściągnąć sobie jakiś wiersz omawiany na polskim Jeśli chodzi o sortowanie danych w pliku to nie miałem na myśli sytuacji gdy możemy wczytać cały plik do tablicy czy listy
@mateuszbzymek3131
@mateuszbzymek3131 5 жыл бұрын
nie uznała mi tej metody rozpisywania na kolokwium :(
@smiejacysiekanal
@smiejacysiekanal 6 ай бұрын
Ja piszę dzisiaj, mam nadzieję ze tego nie da, a jak da to mi zaliczy xd
@holyshit922
@holyshit922 7 жыл бұрын
Wygląda na partycjonowanie Lomuto
@kolboch
@kolboch 7 жыл бұрын
Super dzięki! Szukałem nazwy ale Internet tym razem nie był skuteczny :) Dla ciekawych drugi możliwy sposób to partycjonowanie Hoare'a. Tutaj krótkie porównanie: www.geeksforgeeks.org/hoares-vs-lomuto-partition-scheme-quicksort/
@holyshit922
@holyshit922 7 жыл бұрын
Ogólnie plus za to że chcesz zająć się algorytmami na poważnie bo na youtube po polsku nikt się jeszcze tym nie zajął Na stronach internetowych trafiają się błędy np u Wałaszka jest ich sporo Z polskich książek do algorytmów to chyba jedynie Diks i Rytter , trochę o algorytmach jest też w Pasji Grębosza chociaż nie jest to typowo książka do algorytmów Z książek które dostępne są w przekładach dość dobrą jest książka Cormena i reszty Wprowadzenie do algorytmów Książkę Wirtha Algorytmy +struktury danych = programy już trochę trudniej się czyta
@kolboch
@kolboch 7 жыл бұрын
Dzięki ;) Z założenia chcę aby filmy były proste, a tematy do zrozumienia. Mam nadzieję, że póki co się udaje :)
@Hubertoom
@Hubertoom 3 жыл бұрын
Lomuto czyli bardzo kiepskie, bo może doprowadzić łatwo do złożoności O(n2) w prawie posortowanych tablicach.
@holyshit922
@holyshit922 3 жыл бұрын
@@Hubertoom ale gdybyśmy chcieli przenieść ten algorytm na listę to w przypadku listy jednokierunkowej partycjonowanie Lomuto to jedyny wybór w dodatku wybór elementu rozdzielającego (ang pivot) będzie bardzo ograniczony
@magdalena.m219
@magdalena.m219 3 жыл бұрын
Nic nie ogarniam
@TheBestilsPL
@TheBestilsPL 6 жыл бұрын
zna ktoś jakieś poradniki o algorytmach krokowych albo pseudokodzie ? Mogą być po angielsku
@izabela2097
@izabela2097 6 жыл бұрын
TheBestilsPL ALGORYTMY ALMANACH
@blekfut5763
@blekfut5763 4 жыл бұрын
2: 07 - "jeśli element po prawej stronie granicy będzie mniejszy od pivota musimy zmienić go z pierwszym elementem na prawo od granicy", boże... robisz dobrze, a tłumaczysz źle. Niestety, to typowe dla kiepskich nauczycieli - wiedza co robią, ale nie potrafią tego po polsku powiedzieć.
@kolboch
@kolboch 4 жыл бұрын
Dobrze, że znalazłeś, ktoś mniej uważny i równie gorliwy napewno skorzysta. Całe szczęście nauczycielem nie jestem, po tym jak ten zawód niesłusznie został zmieszany z gównem. Pozdrawiam
@molekula1540
@molekula1540 4 жыл бұрын
namieszane strasznie bez sensu nie pozdrawiam
Algorytmy - Quick Sort - Sortowanie szybkie - implementacja
19:58
Algorytmy - Heap sort - Sortowanie przez kopcowanie
17:43
kakaboc
Рет қаралды 50 М.
FOOLED THE GUARD🤢
00:54
INO
Рет қаралды 60 МЛН
Они убрались очень быстро!
00:40
Аришнев
Рет қаралды 3,4 МЛН
ОДИН ДЕНЬ ИЗ ДЕТСТВА❤️ #shorts
00:59
BATEK_OFFICIAL
Рет қаралды 3,6 МЛН
Algorytmy - Sortowanie szybkie (Quick Sort) [Python]
31:29
Kanał o Wszystkim
Рет қаралды 8 М.
Algorytmy - Merge Sort, Sortowanie przez scalanie
12:58
kakaboc
Рет қаралды 45 М.
Algorytmy - Select Sort, sortowanie przez wybieranie
10:23
kakaboc
Рет қаралды 45 М.
Algorytmy - Insertion Sort, Sortowanie przez wstawianie
8:40
Analiza Algorytmów dla opornych #1
1:36:05
Kacper Donat
Рет қаралды 20 М.
Learn Quick Sort in 13 minutes ⚡
13:49
Bro Code
Рет қаралды 291 М.
Sortowanie Bąbelkowe w Pythonie
13:28
Kreatywny Koder
Рет қаралды 7 М.
Algorytmy - Bubble Sort, Sortowanie bąbelkowe
9:38
kakaboc
Рет қаралды 76 М.
Quicksort Sort Algorithm in Java - Full Tutorial With Source
24:58
Coding with John
Рет қаралды 230 М.
Quick sort with Hungarian, folk dance
6:55
kamal yassin
Рет қаралды 164 М.
FOOLED THE GUARD🤢
00:54
INO
Рет қаралды 60 МЛН