Python Wstawienie

Python Wstawienie
W tym artykule porozmawiamy o algorytmie sortowania insercji w Pythonie. Jest to najprostszy algorytm sortowania i jest bardziej wydajny lub potężny do obsługi danych z niewielkim zakresem lub sortowanie częściowo sortowanej listy. Procedura zwana sortowaniem wstawienia służy do rankingu liczb w tablicach albo wstępujących lub zstępujących. Ten algorytm wykorzystuje podejście na miejscu i stabilne do skutecznego sortowania tablicy. Tutaj szczegółowo wyjaśnimy ten algorytm sortowania i zaimplementujemy algorytm sortowania wstawiania w Pythonie za pomocą przykładów. Opracujmy, jak działa sortowanie insercji.

Jak działa sortować wstawienie?

Działanie w rodzaju insercji jest szczegółowo omówione tutaj. Liczby są sortowane za pomocą sortowania wstawienia. Wielokrotnie umieszcza późniejszy element niepohamowany w odpowiednim miejscu na wcześniej posortowanej liście. Podstawową koncepcją jest porównanie drugiego członka z pierwszym elementem tablicy, który przypuszczalnie jest już posortowany. Jeśli drugi element ma mniejszą wartość niż pierwszy, jest przełączany. Ta procedura jest powtarzana dla pozostałych elementów tablicy. Najgorsze i przeciętne przypadki sortowania wstawienia mają złożoność czasu O (N2), podczas gdy najlepszy przypadek ma złożoność czasu O (N).

Przykład 1:
Bierzemy liniowy przykład, aby zrozumieć koncepcję sortowania wstawienia. Kod referencyjny znajduje się w następujący sposób:

def Insertionsortalgo (ARR):
dla N w zakresie (1, Len (ARR)):
key = arr [n]
M = N-1
podczas gdy m> = 0 i klucz < arr[m] :
ARR [M + 1] = ARR [M]
M -= 1
ARR [M + 1] = klucz
ARR = [29, 15, 7, 10, 46]
Insertionsortalgo (ARR)
Drukuj („Rezultatem posortowanej tablicy jest:”, ARR)

Jak widać w tym przykładzie, definiujemy funkcję sortowania insercji w wierszu 1. Ta implementacja ma listę liczb jako wejście i sortuje listę w kolejności rosnącej. W tym przykładzie przypisujemy zmienną „ARR” jako listę. Następnie uruchamiamy zewnętrzną pętlę, która sprawdza indeks tablicy. Pętla „for” jest używana tutaj. Zakres rozpoczyna się od 1, który jest drugą liczbą w tablicy i trwa przez pętlę do ostatniego elementu.

Wewnątrz tej pętli zainicjujemy zmienną kluczową, która sprawdza wartość indeksu jeden po drugim. Następnie tworzymy zmienną, która utrzymuje wartość tablicy (N-1). Wewnętrzna pętla zaczyna teraz sprawdzać wartości tablicy. Wewnętrzna pętla rozpoczyna się w bieżącym wskaźniku pętli zewnętrznej i porównuje bieżący element z poprzednim elementem. Jeśli poprzedni element jest większy, jest przesunięty w prawo, a wskaźnik bieżącego elementu jest zmniejszony. Trwa to do momentu znalezienia prawidłowej pozycji dla bieżącego elementu.

Obecny element jest umieszczony w odpowiednim miejscu po zakończeniu pętli wewnętrznej. W końcu deklarujemy i inicjowujemy tablicę o nazwie „ARR”. Użyliśmy tej tablicy w wcześniej opisanej funkcji wstawiania, aby wykonać sortowanie w tablicy. Na koniec podajemy tablicę w instrukcji drukowania, aby wyświetlić wynik na konsoli.

Wyjście tego przykładowego programu podano w następujący sposób:

[7, 10, 15, 29, 46]

Przykład 2:
Wyjaśnimy również sortowanie insercji w Pythonie za pomocą innego przykładu. Tworzymy i uruchamiamy ten przykład za pomocą dowolnego narzędzia Python, takiego jak notatnik Pycharm lub Jupiter. Kod referencyjny dla tego drugiego przykładu jest załączona w następujący sposób:

def sortArray (arrayx):
Dla I w zakresie (1, Len (Arrayx)):
temp = arrayx [i]
PoprzedniElement = i-1
podczas gdy poprzedniElement> = 0 i temp < arrayX[previousElement]:
arrayx [poprzedniElement+1] = arrayx [poprzedniElement]
PoprzedniElement- = 1
arrayx [poprzedniElement+1] = temp
arrayx = [45, 66, 37, 99, 10, 5, 2, 78, 1]
sortArray (arrayx)
druk („wynik posortowanej tablicy jest”, Arrayx)

Ogłaszamy tablicę do sortowania, definiując funkcję o nazwie „SortArray”. Używamy pętli do przemierzania tablicy i rozpoczęcia wyszukiwania według indeksu „1”. Umieszczamy długość tablicy i indeksu „1” w funkcji zakresu, w którym wykonywana jest pętla. Umieściliśmy kolejną zmienną, w której obecnie przechowujemy wartość iteracji pętli „I” w tablicy i przypisujemy wartość do zmiennej „Temp”. Przechowujemy poprzednią wartość, która jest prawdopodobnie pierwszym elementem tablicy, z której porównujemy zmienną „Temp” do wyszukiwania, jeśli wartość ta jest większa lub mniejsza niż wartość przechowywana w zmiennej „Temp” i nazwie tej zmiennej jako ” Poprzedni element ”.

Wewnętrzna pętla przyjmuje wartość obecną w zmiennej „poprzednichElement”, aby sprawdzić, czy wartość jest większa niż „0”. Następnie porównujemy dwie zmienne o nazwie „TEMP” i „Poprzednielement”, które są przechowywane w tablicy. Ta wartość jest przekazywana, dopóki pętla nie pozostanie nie zakończeniem. Jeśli wartość tablicy, która jest przechowywana w „poprzednimElement”, wynosi „+1”, oznacza to, że wartość zmieniająca pętlę jest mniejsza niż poprzednia wartość tablicy, która jest przechowywana w indeksie „0”. Następnie zamieniamy te dwie zmienne, za pomocą których mniejsza wartość jest przesunięta w kierunku indeksu „0”, a większa wartość jest przenoszona zamiast innej zmiennej.

Tutaj piszemy logikę, aby zamienić elementy w tablicy, aby sortować elementy. Teraz wszystkie wartości tablicy są sprawdzane jeden po drugim. Zmiana pozycji wartości jest mniejsza i przesunięta w kierunku początkowego tablicy. Weźmy tę tablicę do rozważenia. Rozpoczynamy tablicę od indeksu „1”. Oznacza to, że najpierw weźmiemy „66”. Następnie porównujemy wartość „66” z poprzednią wartością przechowywaną w indeksie „0”, czyli „45”. Teraz „45” jest mniej niż „66”. Następnie zamieniamy zmienną, która przechowuje wartość „66”. Następnie przypisujemy poprzednią wartość tablicy w zmiennej „Temp”. Teraz przechowujemy wartość „45” w zmiennej „Temp”.

Na koniec przypisujemy wartość przechowywaną w „Array [poprzedniElement +1]”, w której przechowywana jest następna wartość do poprzedniej wartości. Następnie przechowujemy następną poprzednią wartość w temperaturze, aby ponownie zacząć sortować. W ten sposób zamieniamy większe i mniejsze wartości. Dopóki pętla nie będzie ważna, elementy tablicy są przechowywane szybko, jeden po drugim. Na końcu kodu wyświetlamy wynik tej tablicy na konsoli za pośrednictwem instrukcji drukowania.

Tutaj wyjście tej tablicy jest wyświetlane na konsoli, ponieważ wynik zapisanej tablicy jest

[1,2,5,10,37,45,66,78,99]].

Wniosek

Dochodzimy do wniosku, że sortowanie wstawiania jest najważniejszym rodzajem sortowania, które służy do sortowania wszystkich elementów tablicy w Pythonie. SORTESER SORT jest stabilnym i nieefektywnym, ale nieefektywnym algorytmem, który ma wiele korzyści, które omówiliśmy za pomocą przykładów. Tutaj podzieliliśmy tablicę na dwie części: posortowane i nieporęczone. Porównanie tych dwóch części utworzyło posortowaną tablicę na końcu.