W programowaniu Java mogą wystąpić przypadki, w których programista musi sortować wpisy masowe. Na przykład układanie lub analiza losowo wygenerowanych wartości. W takich przypadkach „scalić sort„W Javie jest skuteczny i szybszy, tym samym zużywa mniej czasu na sortowanie dłuższych wpisów lub list w porównaniu z innymi algorytmami I.mi., "Bańka".
Ten blog opracuje wdrożenie algorytmu „sortowania sortowania” w Javie.
Jak wdrożyć „sortowanie sortowania” w Javie?
„„scalić sort”Opiera się na„dziel i rządź„Algorytm w taki sposób, że tablica jest podzielona na równe połówki, a następnie dalej dzielony, aż podział nie będzie już wykonywany. Po podziale tablicy, jest ponownie połączona w oparciu o elementy w sortowany (rosnący) sposób.
Demonstracja algorytmu „sortowania scalania”
Przeglądajmy poniższy kod, aby zrozumieć omawianą koncepcję:
Klasa publiczna łączy się
public static void mergedArray (int [] leftArray, int [] rightArray, int [] finalArray, int leftArraysize, int lightArraysize)
int item = 0, lewy = 0, prawy = 0;
While (po lewejif (leftArray [po lewej] finalArray [item ++] = leftArray [left ++];
w przeciwnym razie
finalArray [item ++] = rightArray [right ++];
While (po lewejfinalArray [item ++] = leftArray [left ++];
While (prawdafinalArray [item ++] = rightArray [right ++];
W powyższym kodzie przydzielonym do scalania zastosuj następujące kroki:
Realizacja
Teraz przejdźmy do następującego fragmentu kodu:
public static void diviDearray (int [] tablica, int długość)
if (długość < 2)return;
int div = długość / 2;
int [] larray = new int [div];
int [] rarray = new int [długość-DIV];
int temp = 0;
dla (int i = 0; iif (ilarray [i] = tablica [i];
w przeciwnym razie
rarray [temp] = array [i];
temp = temp+1;
DiviDearray (Larray, Div);
DiviDearray (Rarray, Długość Div);
MergedArray (Larray, Rarray, Array, Div, Długość Div);
W tym kodzie zaimplementowanym w celu podzielenia przekazanej tablicy wykonaj poniżej określone kroki:
Realizacja
Teraz przegląd „główny" kod:
public static void main (string args [])
int [] mergesortArray = 30, 12, 46, 6, 17, 23;
DiviDearray (MergesortArray, MergesortArray.długość);
dla (int i = 0; i< mergesortArray.length;++i)
System.na zewnątrz.print (mergesortArray [i]+ "");
W "główny”, Zastosuj następujące kroki:
Realizacja
Cały kod
Klasa publiczna łączy się
public static void mergedArray (int [] leftArray, int [] rightArray, int [] finalArray, int leftArraysize, int lightArraysize)
int item = 0, lewy = 0, prawy = 0;
While (po lewejif (leftArray [po lewej] finalArray [item ++] = leftArray [left ++];
w przeciwnym razie
finalArray [item ++] = rightArray [right ++];
While (po lewejfinalArray [item ++] = leftArray [left ++];
While (prawdafinalArray [item ++] = rightArray [right ++];
public static void diviDearray (int [] tablica, int długość)
if (długość < 2)return;
int div = długość / 2;
int [] larray = new int [div];
int [] rarray = new int [długość-DIV];
int temp = 0;
dla (int i = 0; iif (ilarray [i] = tablica [i];
w przeciwnym razie
rarray [temp] = array [i];
temp = temp+1;
DiviDearray (Larray, Div);
DiviDearray (Rarray, Długość Div);
MergedArray (Larray, Rarray, Array, Div, Długość Div);
public static void main (string args [])
int [] mergesortArray = 30, 12, 46, 6, 17, 23;
DiviDearray (MergesortArray, MergesortArray.długość);
dla (int i = 0; i< mergesortArray.length;++i)
System.na zewnątrz.print (mergesortArray [i]+ "");
Wyjście
W tym wyjściu można sugerować, że przekazana tablica jest odpowiednio sortowana.
Wniosek
Sekt scalania opiera się na „dziel i rządź„Algorytm w taki sposób, że tablica jest podzielona na równe połówki i połączona ponownie w oparciu o posortowane elementy. Wynik algorytmu jest pobierany zgodnie z oryginalnym w sortowany sposób. W tym blogu omówiono wdrożenie algorytmu sortowania scalania w Javie.