Metoda sortowania - Sortowanie przez Scalanie - Merge Sort [JAVA]
Skrypt ukazuje jak wygląda oraz jak działa metoda sortowania typu Merge Sort (Sortowanie przez Scalanie. Kod ten można wykorzystać do sortowania liczb.
Listing
package sorting;
/**
* @author Funkcje.net
*/
public class SortowaniePrzezScalanie {
public void sortowanie(Comparable[] items) {
Comparable[] temp = new Comparable[items.length];
mergeSort(items,temp,0,items.length-1);
}
private void mergeSort(Comparable[] a, Comparable[] temp,
int left, int right )
{
if (left < right)
{
int center = (left+right)/2;
mergeSort(a,temp,left,center);
mergeSort(a,temp,center+1,right);
scalanie(a,temp,left,center+1,right);
}
}
private void scalanie(Comparable[] a, Comparable[] temp,
int left,int center,int right)
{
int aptr=left;
int bptr=center;
int cptr=0;
while (aptr<center || bptr<=right)
{
if (aptr>=center && bptr <=right)
{
temp[cptr]=a[bptr++];
} else if (bptr>right && aptr <= center) {
temp[cptr]=a[aptr++];
} else {
if (a[aptr].compareTo(a[bptr])<0)
{
temp[cptr]=a[aptr];
aptr++;
} else {
temp[cptr]=a[bptr];
bptr++;
}
}
cptr++;
}
for (int i=left; i<=right; i++)
{
a[i]=temp[i-left];
}
}
private void debugPrint(Comparable[]a,int left, int right)
{
for (int i=left; i<=right; i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
}
}
Dodano przez: divix
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno