Sort sort C ++

Sort sort C ++

Jak wiemy, język C ++ ma wiele algorytmów sortowania do sortowania struktur przypominających tablicę. Jedną z tych technik sortowania jest sort. Jest dość popularny wśród programistów C ++, ponieważ jest uważany za najbardziej wydajny, jeśli chodzi o jego działanie. Jest trochę różni się od innych technik sortowania, ponieważ wymaga informacji o drzewach struktury danych wraz z koncepcją tablic. Jeśli usłyszałeś i dowiedziałeś się o drzewach binarnych, nauka sterty nie będzie już dla Ciebie problemem.

W ramach heap można wygenerować dwa rodzaje sterty, i.mi., Min-Heap i Max-Heap. Max-heap sortuje drzewo binarne w kolejności malejącej, podczas gdy min-heap sortuje drzewo binarne w kolejności rosnącej. Innymi słowy, sterta będzie „maksymalna”, gdy węzeł nadrzędny dziecka ma większą wartość i odwrotnie. Postanowiliśmy więc napisać ten artykuł dla wszystkich tych naiwnych użytkowników C ++, którzy nie mają wcześniejszej wiedzy na temat sortowania, zwłaszcza sortowania sterty.

Zacznijmy nasz dzisiejszy samouczek z Ubuntu 20.04 Zaloguj się, aby uzyskać dostęp do systemu Linux. Po zalogowaniu skorzystaj z skrótu „Ctrl+alt+t” lub obszaru aktywności, aby otworzyć aplikację konsolową o nazwie „Terminal.„Musimy wykorzystać konsolę do wykonania pliku do wdrożenia. Poleceniem do stworzenia jest prosta instrukcja „dotyk” jednorazowa następująca po nowej nazwie pliku do utworzenia. Nazywamy nasz plik C ++ jako „sterta.CC ”. Po utworzeniu pliku musisz zacząć wdrażać w nim kody. W tym celu musisz go najpierw otworzyć za pomocą niektórych redaktorów Linux. Istnieją trzy wbudowane edytory Linux, których można użyć do tego celu, i.mi., Nano, vim i tekst. Używamy redaktora „GNU Nano”.

Przykład nr 01:

Będziemy wyjaśniać prosty i całkiem wyraźny program dla SORP, aby nasi użytkownicy mogli go dobrze zrozumieć i nauczyć się. Użyj przestrzeni nazw C ++ i biblioteki do wejścia na początku tego kodu. Funkcja heapify () zostanie wywołana przez funkcję „sort ()” dla obu jej pętli. Pierwsza pętla „dla” wywoła tablicę „a”, n = 6, a root = 2,1,0 (dotyczący każdej iteracji) w celu zbudowania zmniejszonej sterty.

Korzystając z wartości root za każdym razem, otrzymamy „największą” wartość zmienną wynosi 2,1,0. Następnie obliczymy lewe węzły „L” i prawe „R” drzewa za pomocą wartości „root”. Jeśli lewy węzeł jest większy niż „root”, pierwszy „jeśli” przypisuje „L” do największego. Jeśli odpowiedni węzeł jest większy niż root, drugi „jeśli” przypisuje „r” do największego. Jeśli „największy” nie jest równy wartości „root”, trzeci „jeśli” zamieści „największą” wartość zmienną z „root” i wywoła funkcję heapify (), i i.mi., wezwanie rekurencyjne. Wyżej wymyślony cały proces zostanie również użyty dla maksymalnej sterty, gdy druga pętla „dla” zostanie iterowana w funkcji sortowania.

Funkcja „sort ()” pokazana zostanie wywołana w celu sortowania wartości tablicy „a” w kolejności rosnącej. Pierwsza pętla „for” jest tutaj; Zbuduj stertę lub możesz powiedzieć, że ponownie zorganizuj tablicę. W tym celu wartość „i” zostanie obliczona na podstawie „N/2-1” i zmniejszana za każdym razem po wywołaniu funkcyjnym (). Jeśli masz w sumie 6 wartości, stanie się 2. Zostanie wykonane w sumie 3 iteracje, a funkcja oczyszczania zostanie wywołana 3 razy. Kolejna pętla „dla” jest tutaj, aby przenieść bieżący korzeń na koniec tablicy i wywołać funkcję Ahatify 6 razy. Funkcja zamiany przeniesie wartość do bieżącego wskaźnika iteracji „A [i]” tablicy z pierwszą wartością indeksu „A [0]” tablicy. Funkcja heap () zostanie wywołana w celu wygenerowania maksymalnej sterty na już wygenerowanej zmniejszonej stercie, i.mi., „2,1,0” na początku pętli „for”.

Oto nasza funkcja „Display ()” dla tego programu, która przyjmuje tablicę i liczbę elementów z kodu sterownika Main (). Funkcja „display ()” zostanie wywołana dwukrotnie, i.mi., Przed sortowaniem, aby wyświetlić losową tablicę i po sortowaniu, aby wyświetlić posortowaną tablicę. Rozpoczyna się od pętli „for”, która użyje zmiennej „n” dla ostatniego numeru iteracji i zaczyna się od indeksu 0 tablicy. Obiekt C ++ „Cout” służy do wyświetlania każdej wartości tablicy „A” na każdej iteracji, podczas gdy pętla trwa. W końcu wartości dla tablicy „A” zostaną wyświetlone na skorupce jeden po drugiej, oddzielone od siebie przestrzenią. W końcu przerwa linii zostanie ponownie włożona za pomocą obiektu „cout”.

Ten program rozpocznie się od funkcji Main () jako C ++ zawsze z niej wykonuje. Na samym początku naszej funkcji Main () tablica liczb całkowity. Wszystkie wartości są przechowywane w losowej kolejności w tablicy A. Podjęliśmy rozmiar tablicy „A” i wielkość pierwszej wartości indeksu „0” tablicy A do obliczenia całkowitej liczby elementów w tablicy. Ta obliczona wartość będzie przechowywana w nowej zmiennej „N” typu liczb całkowitych. Standardowe wyjście C ++ można wyświetlić za pomocą obiektu „Cout."

Tak więc używamy tego samego obiektu „cout”, aby wyświetlić prostą wiadomość „Oryginalna tablica” na powłoce, aby poinformować naszych użytkowników, że nieskażona oryginalna tablica zostanie wyświetlona. Teraz w tym programie mamy zdefiniowaną przez użytkownika funkcję „wyświetlania”, która zostanie wywołana tutaj, aby wyświetlić oryginalną tablicę „A”. Przekazaliśmy to naszą oryginalną tablicę i zmienną „N” w parametrach. Po wyświetleniu oryginalnej tablicy wykorzystujemy tutaj funkcję sort (), aby zorganizować i ponownie zorganizować naszą oryginalną tablicę do kolejności rosnącej za pomocą sortowania sterty.

Oryginalna tablica i zmienna „n” są przekazywane w parametrach. Następna instrukcja „Cout” służy do wyświetlania wiadomości „Sortowaną tablicę” po użyciu funkcji „sortowania” do sortowania tablicy „A.„Wezwanie funkcji do funkcji„ Wyświetl ”jest ponownie używane. Ma to wyświetlić posortowaną tablicę na skorupce.

Po zakończeniu programu musimy uczynić go bezbłędnym, używając kompilatora „G ++” na konsoli. Nazwa pliku będzie używana z instrukcją kompilatora „G ++”. Kod zostanie określony jako bezbłędny, jeśli nie wyrzuci wyjścia. Po tym „./A.Polecenie out „może zostać odrzucone w celu wykonania plik kodu bezbłędnego. Oryginalna tablica i posortowana tablica zostały wyświetlone.

Wniosek:

Chodzi o działanie sterty i sposób na użycie sortowania sterty w kodzie programu C ++ do sortowania. W tym artykule opracowaliśmy koncepcję maksymalnej sterty i minuty, a także omówiliśmy użycie drzew do tego celu. Wyjaśniliśmy sortowanie sterty w najprostszy możliwy sposób dla naszych nowych użytkowników C ++, którzy korzystają z systemu Linux.