Sort sort C ++

Sort sort C ++
Język C ++ wymyślił wiele technik sortowania, które należy użyć w programie do sortowania szeregu obiektów. Jedną z tych technik sortowania jest sortowanie powłoki, która jest głównie inną formą sortowania wstawienia. W ramach insercji zwykle przesuwamy jedną wartość do następnej pozycji indeksu. Przemieszczenie wartości do kolejnego następnego indeksu może nie dać wymaganego wyniku, jeśli chcemy go umieścić na końcu i może poświęcić więcej czasu podczas sortowania. Jednocześnie sortowanie powłoki może przesunąć wartość daleko od pierwotnego miejsca i zajmuje mniej czasu. W ten sposób postanowiliśmy wykazać działanie techniki sortowania powłoki w programowaniu C ++. Zacznijmy od tworzenia plików C ++ i jego otwarcia poprzez instrukcje pokazane poniżej na konsoli terminalowej Ubuntu 20.04 System.

Przykład 01:

Począwszy od pierwszego przykładu w nowym pliku, musimy najpierw wykorzystać wymagane biblioteki. Bez nagłówka „iostream” użytkownik nie może korzystać z żadnego strumienia wejściowego i wyjściowego w kodzie. Programator C ++ zawsze będzie korzystać z „przestrzeni nazw” i bibliotek, takich jak „iostream”, „stdlib” i „stdio.H, itp. Oto metoda swap (), która zostanie wywołana przez funkcję „sortowania”. Funkcja sortowania przekazuje dwie wartości w różnych lokalizacjach do metody „swap ()” i użyje zmiennej „temp”, aby je zamienić ze sobą.

Funkcja show () przyjmie tablicę i jej rozmiar, który ma być pokazany w jej parametrach z metody Main (). Użyje pętli „dla”, aby iterować całą tablicę do swojej wielkości.„Użyj obiektu„ Cout ”, aby wyświetlić każdą wartość za pomocą indeksu„ i ”oddzielonego od innych wartości przez miejsce. Po wyświetleniu wszystkich wartości Cout zostanie ponownie użyty do dodania przerwy w linii.

Po wyświetleniu nieprojektowanej tablicy odwraca się, aby funkcja „sortowania” nad nią działała. Funkcja sortowania będzie przyjmować tablicę i jej rozmiar do użycia. Zainicjowane trzy zmienne całkowitowe g, j, k. Zmienna „g” zostanie użyta w pierwszej zewnętrznej pętli „dla”, aby zmniejszyć szczelinę między wartościami. Rozpocznie się od połowy tablicy zgodnie z „g = n/2”. Na każdej iteracji luka zostanie ponownie zmniejszona o „g/2”, i.mi., zostanie utworzona kolejna połowa. W ten sposób tablica zostanie podzielona na różne części, a rozmiar luki będzie mniejszy. Następna pętla „J” rozpocznie się od bieżącej wartości luki, i.mi., „G”, który będzie w tym czasie środkiem tablicy. I będzie trwał do ostatniego indeksu tablicy. Na każdej iteracji „J” zostanie zwiększone. „K” dla pętli rozpocznie się od „j-g” i będzie kontynuować do „k> =.„Jeśli wartość w„ K+g ”jest większa lub równa wartości w„ k ”tablicy, złamie pętlę. W przeciwnym razie wartości zostaną zamienione na wywołanie funkcji „zamiana”. Najprawdopodobniej wartość w „K+G” będzie pozycją wyjściową, a „K” będzie w ostatniej pozycji tablicy.

Każdy program rozpoczyna wykonywanie od kodu funkcji sterownika Main () podczas wykonywania. Nasza funkcja Main () rozpoczęto od tablicy całkowitej „A” inicjalizacji. Ta tablica „A” będzie w losowej kolejności, tj.mi., niezamówiony. Obiekt „Cout” to standardowa instrukcja wyjściowa C ++ używana do wyświetlania pewnej wartości tekstowej lub zmiennej na powładzie. Tym razem używamy go, aby poinformować użytkowników, że tablica przed sortowaniem zostanie wyświetlona na ekranie. Funkcja „show ()” zostanie wywołana, przekazując ją oryginalną nieporadowaną tablicą „A” i liczbę wartości, które chcesz pokazać przed sortowaniem. Chociaż w tablicy jest w sumie 10 elementów, sortowaliśmy i wyświetlaliśmy tylko 9. Metoda „sortowania” jest wywoływana przez przekazanie tablicy i liczby elementów do sortowania tutaj. Po wykonaniu sortowania z sortowaniem powłoki metoda „show” zostanie ponownie wykorzystana do wyświetlenia suma pierwszych 9 elementów posortowanych na powładzie.

Muszla.Plik CC został skompilowany i spowodował wyjście poniżej podskoczenia po wykonaniu. Niepustowe 9 elementów dla tablicy jest najpierw wyświetlone. W ostatnim wierszu te same 9 elementów tablicy jest wyświetlanych w kolejności rosnącej.

Przykład 02:

Nadchodzi nowy przykład używania sortowania powłoki w naszym programie. Używamy tej samej powłoki.plik CC i zainicjował nasz kod z tym samym nagłówkiem i przestrzenią nazw. Ten program zaczyna się od funkcji Main (). Metoda main () ma tablicę liczb całkowitych A 5 Wartości już zainicjowane. Zmienna „N” jest inicjowana za pomocą funkcji „sizeof ()” dla C++. Służy to do obliczania liczb całkowitych w tablicy „a” i zapisywania tej wartości na zmienną „n.„Widzimy, że tablica ma tylko 5 elementów, więc możesz po prostu pominąć użycie obliczania kilku elementów i użyć„ 5 ”w dowolnym miejscu w kodzie.

Przychodzi wiadomość, aby użytkownicy byli ostrzeżni, ponieważ nie można wyświetlić tablicy, ja.mi., za pośrednictwem „Cout.„Funkcja„ display () ”jest tutaj wywoływana, aby wyświetlić pełną nieporozowaną tablicę, przekazując jej tablicę i liczbę elementów w niej. Funkcja display () będzie używać pętli „for”, aby iterować przekazaną tablicę do ostatniego indeksu i wyświetlić wartości, ponieważ używa obiektu „cout” i indeks „i”.„Oto metoda„ sort () ”. Wywołanie funkcji do tej metody jest przyjmowanie tablicy i jej całkowitej liczby elementów jako danych wejściowych. Zewnętrzna pętla „dla” ma zmniejszyć lukę między wartościami/indeksami, dzieląc całkowitą liczbę elementów przez 2.

Wartość „g” musi być większa niż 0 i zostanie zmniejszona o 2 po każdej iteracji. Spowoduje to zmniejszenie luki w każdej iteracji. Wewnętrzna pętla „i” przyjmie wartość luki „g” jako punkt wyjścia i będzie trwał do „n.„W ramach tej pętli wartość„ i ”zostanie przypisana do zmiennej tymczasowej„ temp ”. Wewnętrzna pętla „J” jest tutaj. Zaczyna się od punktu „i”, aż wartość g stanie się równa lub większa niż „g”, a także wartość przy indeksie „J-g” tablicy staje się większa niż zmienna „temp”. „J” będzie za każdym razem zmniejszać „g”. Ta pętla będzie nadal zamieniać wartość w indeksie „J-G” z wartością w „J.„Wartość„ Temp ”zostanie przypisana do indeksu„ J ”tablicy, i.mi., W razie potrzeby zamień. Po powrocie do funkcji main () metoda display () zostanie ponownie wywołana, aby wyświetlić posortowaną tablicę.

W przypadku kompilacji i uruchomienia skorupy.plik CC, okazuje się, że nieprojektowana tablica została teraz posortowana.

Wniosek:

W naszym akapicie wprowadzonym zilustrowaliśmy główny cel użycia sortowania powłoki, a nie sortowanie insercji w C++. Aby zademonstrować, jak to działa, zbudowano dwa proste, ale różnorodne przykłady, które można zmienić zgodnie z preferencjami użytkownika. Pierwszy przykład wykorzystuje metody zdefiniowane przez użytkownika do wymiany i sortowania elementów, ale druga używa jednej funkcji do wykonania obu. Oba te scenariusze sortowania mogą być używane do każdego projektu związanego z technologią.