1. DASAR
TEORI
Pencarian
Berurut (sebuential search) adalah pencarian yang dilakukan pada sejumlah data
dengan metode berurut (darii data yang posisinya berada di depan hingga data
yang berada di belakang).
Pada
pratikum ini, kumpulan data tersebut disajikan sebagai larik atau array.
Kumpulan
data array dapat dalam kondisi belum terurur dan sudah terurut.
Perbedaanya
dapat dirincikan seperti berikut :
1) Data
yang belum terurut :
·
Secara umum pencarian berjalan dengan
relatif lambat
·
Waktu pencarian sebanding dengan jumlah
elemen larik
2) Data
yang sudah terurut :
·
Dapat meningkatkan kinerja pencarian
·
Karena dapat segera menyimpulkan bahwa
data yang dicari tidak terdapt di dalam larik bila ditemukan dengan elemen
latik yang besar dari data yang dicari.
Pencarian
beruntun – data yang terururt :
Data
yang tidak terurut :
13
|
16
|
14
|
21
|
76
|
15
|
1 2 3 4 5
6
Data
yang sudah terurut :
13
|
14
|
15
|
16
|
21
|
76
|
1 2 3 4 5
6
Algoritma
pencarian berurutan pada larik yang terurut menarik (ascending)
While ( i < n )
and ( A [j] < x ) do
Endwhile
If A [i] = x
Else
endif
Berikut adalah algoritmanya dari :
int i;
int array[] = {12, 9, 4, 99, 120, 1, 3, 10};
System.out.println("value before the sort:\n");
for (i = 0; i < array.length; i++){
System.out.print(array [i] + " ");
}
System.out.println();
quicksort(array, 0, array.length-1);
System.out.println("values after the sort:\n");
for (i =0; i < array.length; i++){
System.out.print(array [i] + " ");
}
System.out.println();
System.out.println("pause");
}
public static int partition (int arr[], int left, int right){
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
while (i <= j){
while (arr[i] < pivot){
i++;
}
while (arr[j] > pivot){
j--;
}
if (i <= j){
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
return i;
}
public static void quicksort (int arr[], int left, int right){
int index = partition(arr, left, right);
if (left < index - 1){
quicksort(arr, left, index - 1);
}
if (index < right){
quicksort(arr, index, right);
}
}
}
Tidak ada komentar:
Posting Komentar