Struktur Data
Indexed sequence sort adalah algoritma pencarian nilai yang mengembalikan index /urutan data
dari key yang dicari. Pada intinya indexed sequence sort akan membuat index baru yang
menyimpan nilai index yang dicari.
2. package javamain;
3. import java.io.*;
4.
5. public class indexedsequencesort {
6.
7. static void indexedSequentialSearch(int arr[], int n,
8. int k)
9. {
10. // deklarasi array dan variabel yang akan digunakan
11. int elements[] = new int[20];
12. int indices[] = new int[20];
13. int temp, i;
14. int j = 0, ind = 0, start = 0, end = 0, set = 0;
15. for (i = 0; i < n; i += 3) {
16.
17. // Menyimpan element array
18. elements[ind] = arr[i];
19.
20. // Menyimpan index
21. indices[ind] = i;
22. ind++;
23. }
24. if (k < elements[0]) {
25. System.out.println("Not found");
26. return;
27. }
28. else {
29. for (i = 1; i <= ind; i++)
30. if (k <= elements[i]) {
31. start = indices[i - 1];
32. set = 1;
33. end = indices[i];
34. break;
35. }
36. }
37. if (set == 0) {
38. start = indices[i - 1];
39. end = n;
40. }
41. for (i = start; i <= end; i++) {
Fitra Haryadi 041665966
Struktur Data
42. if (k == arr[i]) {
43. j = 1;
44. break;
45. }
46. }
47. if (j == 1)
48.
49. System.out.println("Key ditemukan pada array dengan index = " +
i);
50. else
51. System.out.println("Key tidak ditemukan");
52. }
53.
54.
55. public static void main(String[] args)
56. {
57. int arr[] = { 20, 30, 40, 50, 60 };
58. int n = arr.length;
59.
60. // Elemen yang dicari
61. int k = 30;
62. indexedSequentialSearch(arr, n, k);
63. }
64.
65. }
66.
2. Buatlah sebuah program searching (algoritma binary search) dengan menggunakan bahasa
Java. Adapun data yang dimasukkan yaitu (20, 30, 40, 50, 60), lakukan pencarian angka 30
pada data tersebut. (50)
Pada binary search array akan dibagi-bagi menjadi setengah dan melakukan pencarian ke array2
yang telah dibagi tersebut. Dan pada akhirnya akan mencari ke seluruh bagian array apabila key
tidak ditemukan. Pada pembagian awal array akan dibagi dua kemudian pencarian akan
dilakukan ke sebelah kiri dahulu kemudian apabila tidak ditemukan maka pencarian akan
dilakukan ke sebelah kanan. Begitu pula bias di-implementasikan sebaliknya.
package javamain;
//main kode
public static void main(String args[])
{
Binarysearch ob = new Binarysearch();
int arr[] = { 20, 30, 40, 50, 60 };
int n = arr.length;
int x = 30;
int result = ob.binarySearch(arr, 0, n - 1, x);
if (result == -1)
System.out.println("Key tidak ditemukan");
else
System.out.println("Key ditemukan pada index = " + result);
}
}