Skip to main content

Sorting and searching in C

Seperti yang kita tahu,jika kumpulan data dapat menjadi lebih mudah untuk diolah apabila data tersebut sudah terurut.Maka,dengan itu kita dapat mengurutkan data dalam program C.
Disini,kita mengenal ada 3 jenis tipe sorting sederhana yaitu :

1.Bubble sort
Bubble sort dapat menukarkan kedua data dalam index yang bersebelahan.Contohnya adalah

Hasil gambar untuk bubble sort

Di gambar tersebut,kita dapat melihat bahwa data tersebut dibandingkan dengan data yang selanjutnya sampai semuanya tertukar.Untuk dalam coding-an nya dapat diberi contoh sebagai berikut

void bubble()
{
for(int c=1;c<7;c++)
{
for(int i=6;i>=c;i--)
{
      if(arr[i]<arr[i-1])
          {
               swap(arr[i],arr[i-1]);
           }
}
}

2.Selection Sort
Membandingkan data sampai ketemu yang lebih kecil maka akan dipindahkan ditukar dan akan lanjut keindex selanjutnya sampai akhir.Gambarnya kira-kira seperti ini.
Hasil gambar untuk selection sort


3.Insertion sort
Index pertama dibandingkan dengan kedua dan yang lebih kecil dimasukkan ke temp atau tempat penampungan sementara dan isi temp akan dibandingkan dengan yang selanjutnya,jika ketemu yang lebih kecil,maka seluruh index sebelumnya akan bergeser dan dilanjutkan sampai selesai.
Hasil gambar untuk insertion sort


Untuk mencari data,kita dapat menggunakan searching.Ada 3 cara dalam searching,yaitu:
1.Linear Searching
Mencari key word atau angka yang kita ingin cari dari index awal hingga akhir.Data tidak harus terurut.
2.Binary searching
Mencari keyword dengan cara membagi dua index tersebut kemudian membandingkannya jika keyword lebih besar dari index tengah +1,maka mulai mencari dari kanan.Sebaliknya jika lebih kecil kita mencarinya ke kiri.Jika nilainya sama,maka itulah yang menjadi keywordnya.
3.Interpolation search
Sama seperti jika kita mencari kamus dengan kata "lari",maka yang kita akan cari adalah dari akhir huruf k sampai awal huruf m.Begitu juga dengan Interpolation search kita mencari nilai diantara keyword tersebut dengan rumus:


Index_Tengah=(Keyword-data[min]/data[max]-data[min])*(index_max-index_min)+index_min
Jika belum ketemu,maka index tengahnya dibandingkan dengan keyword,jika lebih besar maka ulangi dengan index mid-1 jika lebih kecil,ulangi dengan index mid+1.



Sekiian penjelasan dari saya mengenai sorting dan searching.Semoga bermanfaat dan Terima kasih :D



Comments