9 Teraz musimy porównać, czy czwarty punkt na naszej liście - ostatni element - jest wyższy od czegokolwiek innego na naszej liście. W tym przypadku 9 jest większe niż wszystkie elementy przed nim: 8, 6 i 3. Oto algorytm, którego użyliśmy do sortowania listy: - pierwszy element jest posortowany.
- Porównaj drugi element z elementem po jego lewej stronie.
- Jeśli ten element jest większy niż wartość po jego lewej stronie, element pozostaje w tym samym miejscu. W przeciwnym razie przesuń wartość w lewo.
- Powtarzaj, aż wszystkie elementy pojawią się w kolejności.
Mamy teraz posortowaną tablicę. Rodzaje wstawiania są sortowane po jednym elemencie na raz. Zobaczmy, jak zaimplementować ten algorytm sortowania w Javie Jak wykonać wstaw sortowanie w Javiewyższa z dwóch porównywanych wartości jest wstawiana o jedną pozycję w prawo za każdym razem, gdy wykonywana jest funkcja sortowania. Można mówić w kategoriach teoretycznych , ale jak to zaimplementować w Javie? To dobre pytanie. Napiszmy klasę, która będzie sortować według wstawek na liście ocen uczniów. Przygotuj bibliotekę tablic Zacznijmy importując bibliotekę Array do naszego programu Java. Użyjemy tej biblioteki do wydrukowania naszej listy w konsoli po jej posortowaniu: decla re a metoda sortowania Zaczniemy od zadeklarowania metody, która iteruje po naszej liście i sortuje nasze dane w kolejności rosnącej >: Zacznijmy od sprawdzenia, ile elementów znajduje się w naszej tablicy wejściowej. To pozwala nam stworzyć pętlę, która przechodzi przez każdy element na naszej liście. Inicjujemy pętlę, która zapętla się, dopóki nie wyjdziemy z naszej listy. W naszej pętli zadeklarowaliśmy dwie zmienne: kluczową i ostatnią. Java zmienna "klucz" śledzi element, który aktualnie zamawiamy. Zmienna „ostatni” śledzi, ile elementów należy posortować po lewej stronie elementu. Nasz program będzie porównywał wartość „klucza” z każdym elementem po jego lewej stronie, dopóki nie znajdziemy mniejszego elementu . Dzieje się tak w naszej pętli Java "while" . Zdefiniuj funkcję główną Kiedy to uruchamiamy kod, nic się nie dzieje. Rzeczywiście, nie zdefiniowaliśmy jeszcze naszej głównej funkcji. Definiujemy główną funkcję, która definiuje sieć int (tablicę liczb). Ta funkcja główna wykorzystuje zadeklarowaną przez nas funkcję insertSort() do sortowania tych cyfr. Wklej ten kod po zadeklarowaniu wpisuSortuj metoda Java : W naszej głównej metodzie zadeklarowaliśmy listę liczb, które chcemy posortować. Stworzyliśmy instancję naszej metody InsertionSort () o nazwie sortNumbers . Używamy tej metody do sortowania listy liczb w kolejności rosnącej. Ta metoda zmienia wartości w naszym wektorze "cyfr"; nie zadeklarowaliśmy oddzielnej tablicy do przechowywania jej wartości. Następnie użyliśmy metoda Arrays.toString() do konwersji naszej tablicy liczb na łańcuch znaków. < h2> złożoność egzaminusortowanie przez wstawianie ma średnią złożoność obserwacji wynoszącą O ( n ^ 2)). Dzieje się tak, gdy żadne elementy nie są sortowane. Najlepszy przypadek złożoności występuje, gdy posortowana jest tablica. Daje to złożoność czasową O (n). Rzeczywiście, wewnętrzna pętla w pewnym rodzaju w tym przypadku wstawienie w ogóle nie zostanie wykonane. w najgorszym przypadku wstawienie jest dokonywane w pozycji O Ęã‚Ęãsort (n ^2). Dzieje się tak, gdy tablica jest w porządku rosnącym lub malejącym i chcesz posortować w odwrotnej kolejności (tj. rosnącej do malejącej) przeciwstawność każdego elementu z pozostałymi elementami ent. WnioskiRodzaje wstawiania są skutecznym sposobem sortowania danych. orts porównuje wartości zaczynając od drugiej na liście. Jeśli ta wartość jest większa niż ta po jej lewej stronie, nasza lista się nie zmienia. W przeciwnym razie wartość jest przesuwana, aż element po lewej stronie będzie mniejszy. Teraz możesz zacząć pisać własny algorytm sortowania przez wstawianie w Javie! Jeśli szukasz więcej materiałów do nauki języka Java , zapoznaj się z naszymi Przewodnik po języku Java . |