Anda di halaman 1dari 5

ALGORITMA DAN STRUKTUR DATA

RESMI

PRAKTIKUM QUICKSORT
-

PRADITYA NAFIIS MUHAMMAD

2 D3 IT B

2103181032

YULIANA SETYOWATI

9 OKTOBER 2019
QUICK SORT

 Prinsip Dasar
Quick sort berdasar kepada pendekatan divide-and-conquer dengan memilih satu
elemen sebagai elemen pivot dan mempartisi array sehingga; sisi kiri pivot memiliki
semua elemen dengan nilai yang lebih kecil dibandingkan elemen pivot, dan sisi
kanan memiliki semua elemen dengan nilai yang lebih besar dibandingkan nilai
elemen pivot.
Cara ini mengurangi kompleksitas ruang dan menafikan penggunaan auxiliary array
yang diperlukan pada merge sort. Memilih pivot secara acak pada array akan
mengoptimalkan faktor kompleksitas waktu pada mayoritas operasi.

 Contoh
 Source Code
int partition(int arr[], int low, int high)
{
int pivot = arr[high];
int i = (low-1); // index of smaller element
for (int j=low; j<high; j++)
{
// If current element is smaller than or
// equal to pivot
if (arr[j] <= pivot)
{
i++;
// swap arr[i] and arr[j]
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}

// swap arr[i+1] and arr[high] (or pivot)


int temp = arr[i+1];
arr[i+1] = arr[high];
arr[high] = temp;

return i+1;
}

/* The main function that implements QuickSort()


arr[] --> Array to be sorted,
low --> Starting index,
high --> Ending index */
void sort(int arr[], int low, int high)
{
if (low < high)
{
/* pi is partitioning index, arr[pi] is
now at right place */
int pi = partition(arr, low, high);

// Recursively sort elements before


// partition and after partition
sort(arr, low, pi-1);
sort(arr, pi+1, high);
}
}

/* A utility function to print array of size n */


static void printArray(int arr[])
{
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i]+" ");
System.out.println();
}

// Driver program
public static void main(String args[])
{
int arr[] = {10, 7, 8, 9, 1, 5};
int n = arr.length;

QuickSort ob = new QuickSort();


ob.sort(arr, 0, n-1);

System.out.println("sorted array");
printArray(arr);
}
}
/*This code is contributed by Rajat Mishra */
 Output Program
sorted array
1 5 7 8 9 10

Anda mungkin juga menyukai