Wednesday, December 19, 2018

SEARCHING

SEARCHING

Searching
Merupakan proses untuk menemukan element array yang ingin dicari atau sebuah tindakan untuk mendapatkan informmasi berdasarkan kata kunci partikular dari informasi yang telah tersimpan.

Searching dibagi menjadi 3 jenis:
  • Linear search
  • Binary search
  • Interpolation search  

1. Linear search
Membandingkan tiap element dengan kata kunci yang diberikan, dalam algoritma sebagai berikut:

Algorithm:
   1. n : total record of array x.
2. For each x[i], 0 £  i £ n-1, check whether x[i] = key.
3. If x[i] = key, then the searched data is found in index=i. Finished.
4. If x[i] ¹ key, then continue searching until the last data which is i = n-1.

5. If i= n-1 and x[i] ¹ key, it means the data is not exist in the list, and set index = -1. Finished.

2. Binary search
Sangat baik digunakan pada list yang kecil dan tidak terurut, Mengambil titik tengah dari data yang ada lalu membandingkan data tersebut lebih kecil / lebih besar dari data lainnya. Dapat dicontohkan dalam algoritma sebagai berikut:

Algorithm:
1. n : total record of array x.
2. left=0,  right= n-1.
3. mid =(int) (left + right)/2.
4. If x[mid]=key then index = mid. Finished.
5. If x[mid]<key then left = mid+1.
6. If x[mid]>key then right = mid-1.
7. If left £ right and x[mid] ¹ key, then repeat point 3.

8. If x[mid] ¹ key then index = -1. Finished.

3.Interpolation search
Berlaku pada data yang sudah terurut , hampir sama seperti Binary search. Dalam algoritma dirumuskan seperti berikut:

Algorithm:
1.In the interpolation search, we'll split the data according to the following formula:
●Mid = (key - data[min]) / (data[max] - data[min]) * (max-min) + min.
2.If data[mid] = sought data, data has been found, searching is stopped and return mid.
3.If data[mid]!= sought data, repeat point **
4.**Searching is continued while sought data > data[min] and sought data < data[max].
5.Looking for a mid value by entering into the interpolation formula
6.If data[mid] > sought data, high = mid – 1
7.If data[mid] < sought data, low = mid + 1
8.It will be looped until the requirements point ** are not met then return (-1), data not found





No comments:

Post a Comment