Searching
dalam bahasa c
Searching bisa diartikan tindakan untuk mengambil informasi berdasarkan kunci tertentu dari beberapa informasi yang disimpan.
Kunci (key) nya digunakan untuk melakukan pencarian rekaman yang diinginkan dari satu set daftar data.
Kunci (key) nya itu harus unik atau bisa disebut tidak data yang sama dalam data.
Contoh:
Data mahasiswa terdiri dari nama,kelas,nim,tanggal lahir.
Nimnya itulah yang digunakan sebagai kunci (key) data karena unik.
Beberapa yang saya akan jelaskan dalam pencarian(searching) dalam algoritma:
· Linear search.
· Binary search.
· Interpolation search.
Linear search.
Linear search membandingkan setiap elemen dari array dengan kunci search.
Karena larik tidak dalam urutan tertentu, kemungkinan besar nilainya akan ditemukan di elemen pertama seperti yang terakhir.
Oleh karena itu, rata-rata, program harus membandingkan kunci search dengan setengah elemen dari array.
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.
Binary search
Dalam linear search berfungsi baik untuk array kecil atau tidak disortir namun untuk array besar linear search tidak efisien.
Jika susunan disortir teknik binary search berkecepatan tinggi dapat digunakan.
Dalam kodingannya :
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.
Interpolation search.
Teknik Interpolation search dilakukan pada data yang diurutkan.
Teknik Interpolation search hampir mirip dengan teknik binary search.
Teknik Interpolation search dilakukan dengan perkiraan lokasi data.
Contoh:
Jika kita ingin mencari nama di buku telepon, misalnya yang diawali dengan huruf T, maka kita tidak akan mencari dari awal buku, tetapi kita membukanya di 2/3 atau ¾ dari buku.
Dalam kodingannya :
Algorithm:
1. In the interpolation search, we'll split the
data according to the following
formula:
mid
= kunci – 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.
Tidak ada komentar:
Posting Komentar