bubble sort java java sorting algorithms code examples
W tym samouczku wyjaśniono sortowanie bąbelkowe w Javie wraz z głównym algorytmem sortowania w języku Java, implementacją sortowania bąbelkowego i przykładami kodu:
Algorytm sortowania można zdefiniować jako algorytm lub procedurę umieszczania elementów kolekcji w określonej kolejności. Na przykład, jeśli masz kolekcję liczbową, taką jak ArrayList zawierającą liczby całkowite, możesz chcieć uporządkować elementy ArrayList w porządku rosnącym lub malejącym.
Podobnie, możesz chcieć uporządkować ciągi w kolekcji ciągów w porządku alfabetycznym lub leksykograficznym. W tym miejscu pojawiają się algorytmy sortowania w Javie.
strona internetowa do konwersji filmów z YouTube na mp3
Czego się nauczysz:
Główne algorytmy sortowania w Javie
Algorytmy sortowania są zwykle oceniane w zależności od złożoności czasowej i przestrzennej. Java obsługuje różne algorytmy sortowania, które są używane do sortowania lub porządkowania zbiorów lub struktur danych.
Poniższa tabela przedstawia główne algorytmy sortowania obsługiwane w Javie wraz z ich najlepszymi / najgorszymi przypadkami złożoności.
Złożoność czasowa | ||||
---|---|---|---|---|
Sortowanie radix | Algorytm sortowania liniowego. | O (nk) | O (nk) | O (nk) |
Algorytm sortowania | Opis | Najlepszy przypadek | Najgorszy przypadek | Przeciętny przypadek |
Sortowanie bąbelkowe | Wielokrotnie porównuje bieżący element z sąsiednimi elementami. Pod koniec każdej iteracji najcięższy element jest wypychany w odpowiednim miejscu. | Na) | O (n ^ 2) | O (n ^ 2) |
Sortowanie przez wstawianie | Wstawia każdy element kolekcji w odpowiednie miejsce. | Na) | O (n ^ 2) | O (n ^ 2) |
Merge Sort | Jest zgodne z podejściem dziel i zwyciężaj. Dzieli kolekcję na prostsze podkolekcje, sortuje je, a następnie scala wszystko | O (nlogn) | O (nlogn) | O (nlogn) |
Szybkie sortowanie | Najbardziej wydajna i zoptymalizowana technika sortowania. Używa funkcji dziel i podbijaj do sortowania kolekcji. | O (nlogn) | O (n ^ 2) | O (nlogn) |
Sortowanie przez wybór | Znajduje najmniejszy element w kolekcji i umieszcza go w odpowiednim miejscu na końcu każdej iteracji | O (N ^ 2) | O (N ^ 2) | O (N ^ 2) |
Sortowanie na stosie | Elementy są sortowane według sterty minimalnej lub maksymalnej. | O (nlogn) | O (nlogn) | O (nlogn) |
Oprócz technik sortowania podanych w powyższej tabeli, Java obsługuje również następujące techniki sortowania:
- Sortowanie w wiadrze
- Sortowanie według liczenia
- Sortowanie powłoki
- Sortowanie grzebieniowe
Ale te techniki są używane oszczędnie w praktycznych zastosowaniach, dlatego te techniki nie będą częścią tej serii.
Omówmy technikę sortowania w bąbelkach w Javie.
Sortowanie bąbelkowe w Javie
Sortowanie bąbelkowe jest najprostszą ze wszystkich technik sortowania w Javie. Ta technika sortuje kolekcję, wielokrotnie porównując dwa sąsiednie elementy i zamieniając je, jeśli nie są w żądanej kolejności. W ten sposób pod koniec iteracji najcięższy element zostaje wypchnięty, aby zająć należną mu pozycję.
Jeśli na liście A jest n elementów podanych przez A (0), A (1), A (2), A (3),… .A (n-1), to A (0) jest porównywane z A (1) ), A (1) jest porównywane z A (2) i tak dalej. Po porównaniu, czy pierwszy element jest większy niż drugi, dwa elementy są zamieniane, jeśli nie są w kolejności.
Algorytm sortowania bąbelkowego
Ogólny algorytm techniki sortowania bąbelkowego jest podany poniżej:
Krok 1: Dla i = 0 do N-1 powtórz krok 2
Krok 2: Dla J = i + 1 do N - powtarzam
Krok 3: jeśli A (J)> A (i)
Zamień A (J) i A (i)
(End of Inner for loop)
(End if Outer for loop)
Krok 4: Wyjście
Pokażmy teraz technikę sortowania bąbelkowego na ilustracyjnym przykładzie.
Bierzemy tablicę o rozmiarze 5 i ilustrujemy algorytm sortowania bąbelkowego.
Sortuj tablicę za pomocą sortowania bąbelkowego
Poniższa lista ma zostać posortowana.
strony anime do oglądania anime za darmo w języku angielskim z dubbingiem
Jak widać powyżej, tablica jest w całości posortowana.
Powyższą ilustrację można podsumować w formie tabelarycznej, jak pokazano poniżej:
Przechodzić | Niesortowana lista | porównanie | Posortowana lista |
---|---|---|---|
{3,6,11,4,15} | {11.4} | {3,6,4,11,15} | |
1 | {11, 3, 6,15,4} | {11.3} | {3,11,6,15,4} |
{3,11,6,15,4} | {11.6} | {3,6,11,15,4} | |
{3,6,11,15,4} | {11.15} | {3,6,11,15,4} | |
{3,6,11,15,4} | {15.4} | {3,6,11,4,15} | |
dwa | {3,6,11,4,15} | {3,6} | {3,6,11,4,15} |
{3,6,11,4,15} | {6.11} | {3,6,11,4,15} | |
3 | {3,6,4,11,15} | {3,6} | {3,6,4,11,15} |
{3,6,4,11,15} | {6.4} | {3,4,6,11,15} | |
{3,4,6,11,15} | SORTOWANE |
Jak pokazano na powyższym przykładzie, największy element wraca do właściwej pozycji przy każdej iteracji / przejściu. Ogólnie rzecz biorąc, kiedy osiągamy N-1 (gdzie N jest całkowitą liczbą elementów na liście) przechodzi; będziemy mieli posortowaną całą listę.
Przykład kodu sortowania bąbelkowego
Poniższy program przedstawia implementację algorytmu sortowania bąbelkowego w języku Java. Tutaj utrzymujemy tablicę liczb i używamy dwóch jako pętli do przechodzenia przez sąsiednie elementy tablicy. Jeśli dwa sąsiednie elementy nie są w kolejności, są zamieniane.
import java.util.*; class Main{ // Driver method to test above public static void main(String args()) { //declare an array of integers int intArray() = {23,43,13,65,11,62,76,83,9,71,84,34,96,80}; //print original array System.out.println('Original array: ' + Arrays.toString(intArray)); int n = intArray.length; //iterate over the array comparing adjacent elements for (int i = 0; i intArray(j+1)) { int temp = intArray(j); intArray(j) = intArray(j+1); intArray(j+1) = temp; } //print the sorted array System.out.println('Sorted array: ' + Arrays.toString(intArray)); } }
Wynik:
Oryginalna tablica: (23, 43, 13, 65, 11, 62, 76, 83, 9, 71, 84, 34, 96, 80)
Posortowana tablica: (9, 11, 13, 23, 34, 43, 62, 65, 71, 76, 80, 83, 84, 96)
Często Zadawane Pytania
P # 1) Jakie są algorytmy sortowania w Javie?
Odpowiedź: Algorytm sortowania można zdefiniować jako algorytm lub procedurę, za pomocą której elementy kolekcji można uporządkować lub uporządkować w żądany sposób.
Poniżej podano niektóre algorytmy sortowania obsługiwane w Javie:
- Sortowanie bąbelkowe
- Sortowanie przez wstawianie
- Sortowanie przez wybór
- Sortuj przez scalanie
- Szybkie sortowanie
- Sortowanie radix
- Heapsort
Pytanie nr 2) Jaki jest najlepszy algorytm sortowania w Javie?
Odpowiedź: Merge Sort ma być najszybszym algorytmem sortowania w Javie. W rzeczywistości Java 7 wykorzystała wewnętrznie sortowanie przez scalanie do implementacji metody Collections.sort (). Szybkie sortowanie to także kolejny najlepszy algorytm sortowania.
Pytanie 3) Co to jest sortowanie bąbelkowe w Javie?
Odpowiedź: Sortowanie bąbelkowe to najprostszy algorytm w Javie. Sortowanie bąbelkowe zawsze porównuje dwa sąsiednie elementy na liście i zamienia je, jeśli nie są w pożądanej kolejności. W ten sposób pod koniec każdej iteracji lub przejścia najcięższy element jest wypychany na właściwe miejsce.
Pytanie 4) Dlaczego Bubble sort Ndwa?
Odpowiedź: Do implementacji sortowania bąbelkowego używamy dwóch dla pętli.
jak uruchomić pliki swf
Całkowitą wykonaną pracę mierzy się:
Ilość pracy wykonanej przez pętlę wewnętrzną * całkowita liczba uruchomień pętli zewnętrznej.
W przypadku listy n elementów pętla wewnętrzna działa dla O (n) dla każdej iteracji. Pętla zewnętrzna działa w iteracji O (n). Stąd całkowita wykonana praca to O (n) * O (n) = O (ndwa)
Pytanie nr 15) Jakie są zalety sortowania Bubble?
Odpowiedź: Zalety sortowania bąbelkowego są następujące:
- Łatwy do zakodowania i zrozumienia.
- Aby zaimplementować algorytm, potrzeba kilku wierszy kodu.
- Sortowanie odbywa się na miejscu, tzn. Dodatkowa pamięć nie jest wymagana, a tym samym nie ma narzutu pamięci.
- Posortowane dane są natychmiast dostępne do przetwarzania.
Wniosek
Do tej pory omawialiśmy algorytm sortowania bąbelkowego w Javie. Zbadaliśmy również algorytm i szczegółową ilustrację sortowania tablicy przy użyciu techniki sortowania bąbelkowego. Następnie zaimplementowaliśmy program Java do Bubble Sort.
W następnym samouczku będziemy kontynuować inne techniki sortowania w Javie.
=> Sprawdź WSZYSTKIE samouczki Java tutaj.
rekomendowane lektury
- Sortowanie przez wybór w Javie - Algorytm sortowania przez wybór i przykłady
- Sortowanie przez wstawianie w Javie - Algorytm sortowania przez wstawianie i przykłady
- Sortuj bąbelkowe w C ++ z przykładami
- Jak posortować tablicę w Javie - samouczek z przykładami
- Samouczek dotyczący długości tablicy w języku Java z przykładami kodu
- Metoda MongoDB Sort () z przykładami
- Polecenie sortowania systemu Unix ze składnią, opcjami i przykładami
- Słowo kluczowe „this” w języku Java: samouczek z przykładami kodu