|
jandrla
Član broj: 8087 Poruke: 45 *.53.eunet.yu.
|
Stvarno ne mogu da se bakcem sa kodom, ali mogu da ti dam
jedan od najstandardnijih kodova za quicksort, pa se
nadam da ce ti posluziti.
Pozdrav.
import java.io.*;
public class quicksort
{
/* Metod partition particionise deo niza na intervalu [l, r]
tako da je uredjen na sledeci nacin:
elementi koji su manji od pivota smestaju se levo
od njega a elementi koji su veci desno.
Za pivot se uzima krajnji desni element intervala. */
public static int partition(String[] a, int l, int r)
{
String temp;
int first;
first = r; // Cuva indeks prvog elementa koji je veci od pivota.
for(int i = r - 1; i >= l; i--)
if(a.compareTo(a[r]) > 0)
{
first--;
temp = a;
a = a[first];
a[first] = temp;
}
/* Ostalo je jos umetnuti pivot element na svoje mesto.
Indeks na kom treba da se umetne element sacuvan je
u promenljivoj first. */
temp = a[first];
a[first] = a[r];
a[r] = temp;
return first;
}
public static void quicksort(String[] a, int l, int r)
{
if(l >= r)
return;
int pivot = partition(a, l, r);
quicksort(a, l, pivot - 1);
quicksort(a, pivot + 1, r);
}
public static void main(String[] args)
{
String[] a = {"G", "D", "E", "F", "C", "A", "B"};
int n = a.length;
quicksort(a, 0, n - 1);
for(int i = 0; i < n; i++)
System.out.println(a + " ");
}
}
|