Jak wdrożyć QuickSort w Javie?



W tym artykule przedstawimy kolejny algorytm sortowania „Podziel i zwyciężaj”, czyli QuickSort in Java, a następnie zaprezentujemy go w postaci demonstracji.

QuickSort to algorytm dziel i rządź. W paradygmacie projektowania algorytmu Divide & Conquer, dzielimy problemy na podproblemy rekurencyjnie, następnie rozwiązujemy podproblemy i na koniec łączymy rozwiązania, aby znaleźć ostateczny wynik. W tym artykule skupimy się na QuickSort In

Poniższe wskazówki zostaną omówione w tym artykule,





Zaczynajmy!

Jedną rzeczą, o której należy pamiętać podczas dzielenia problemów na podproblemy, jest to, że struktura podproblemów nie zmienia się od pierwotnego problemu.
Algorytm Divide & Conquer ma 3 kroki:



tworzenie tablicy obiektów w java
  • Podziel: dzielenie problemu na podproblemy
  • Conquer: Rekurencyjne rozwiązywanie podproblemów
  • Połącz: łączenie rozwiązań, aby uzyskać efekt końcowy

Obraz - szybkie sortowanie w Javie - Edureka

Istnieją różne algorytmy oparte na paradygmacie dziel i rządź. Wśród nich są szybkie sortowanie i sortowanie przez scalanie.

Chociaż w najgorszym przypadku złożoność czasowa QuickSort to O (n2), która jest większa niż wiele innych algorytmów sortowania, takich jak sortowanie przez scalanie i sortowanie na stosie, w praktyce QuickSort jest szybszy, ponieważ jego wewnętrzną pętlę można efektywnie zaimplementować na większości architektur i w większości dane ze świata rzeczywistego.



Porozmawiajmy o implementacji algorytmu szybkiego sortowania. Algorytmy szybkiego sortowania pobierają element przestawny i dzielą tablicę wokół elementu przestawnego. Istnieje wiele odmian Quicksot, które zależą od tego, jak wybierzesz element obrotu. Istnieje wiele sposobów wyboru elementu przestawnego:

  • Wybór pierwszego elementu
  • Wybierz ostatni element
  • Wybór losowego elementu
  • Wybieranie środkowego elementu

Kolejną ważną rzeczą do zrozumienia jest funkcja partition () w algorytmie szybkiego sortowania. Funkcja podziału przejmuje element pivot, umieszcza go we właściwej pozycji, przesuwa wszystkie elementy mniejsze od elementu pivot w lewo i wszystkie elementy większe w prawo. Szybkie sortowanie wymaga liniowego czasu, aby to zrobić.
Następnie tablica jest dzielona na dwie części z elementu pivot (tj. Elementy mniejsze niż pivot i elementy większe niż pivot), a obie tablice są rekurencyjnie sortowane za pomocą algorytmu Quicksort.

Teraz, gdy rozumiemy działanie algorytmu QuickSort. Zobaczmy, jak wdrożyć algorytm Quicksort w Javie.

Szybkie sortowanie Funkcjonować:

/ * Funkcja Quicksort wymaga sortowania tablicy według najniższego i najwyższego indeksu * /

void sort (int arr [], int lowIndex, int highIndex) {// Dopóki lowIndex = highIndex if (lowIndex

Przyjrzyjmy się teraz kodowi partycjonowania, aby zrozumieć, jak to działa.

Przegroda Kod

W kodzie partycjonowania wybierzemy ostatni element jako element przestawny. Przechodzimy przez całą tablicę (czyli używając zmiennej j w naszym przypadku). Śledzimy ostatni najmniejszy element tablicy (czyli w naszym przypadku używając zmiennej i). Jeśli znajdziemy jakikolwiek element mniejszy niż pivot, przesuwamy zamień aktualny element a [j] z arr [i], w przeciwnym razie kontynuujemy trawers.

int partition (int arr [], int lowIndex, int highIndex) {// Zmiana ostatniego elementu jako pivot int pivot = arr [highIndex] // Używanie i do śledzenia mniejszych elementów z pivot int i = (lowIndex-1) for (int j = lowIndex j

Teraz, gdy zrozumiałeś już funkcję Quicksort i partycjonowanie, spójrzmy szybko na cały kod

Szybkie sortowanie Kod Java

class QuickSort {// Metoda partycji int partycja (int arr [], int lowIndex, int highIndex) {int pivot = arr [highIndex] int i = (lowIndex-1) for (int j = lowIndex j

// Metoda sortowania

void sort (int arr [], int lowIndex, int highIndex) {if (lowIndex

// Metoda drukowania tablicy

static void printArray (int arr []) {int n = arr.length for (int i = 0 i

// Metoda główna

public static void main (String args []) {int arr [] = {101, 37, 68, 29, 11, 5} int n = arr.length QuickSort ob = new QuickSort () ob.sort (arr, 0, n-1) System.out.println ('posortowana tablica') printArray (arr)}}

Wynik:

Wyjście - Szybkie sortowanie w Javie - Edureka

Teraz po wykonaniu powyższego programu w Javie zrozumiałbyś, jak działa QuickSort i jak zaimplementować go w Javie.W ten sposób doszliśmy do końca artykułu „Szybkie sortowanie w Javie”. Jeśli chcesz dowiedzieć się więcej,Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online. Szkolenie i certyfikacja J2EE i SOA firmy Edureka ma na celu przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.

co to jest konstruktor w Pythonie

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy na tym blogu, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.