Sorting
Sorting adalah proses mengatur sekumpulan
objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik
atau disebut juga ascending (dari data kecil ke data lebih besar) ataupun
menurun/descending(dari data besar ke data kecil).
Contoh-Nya :
Data Acak :
5 6 8 1 3 25 10
Ascending : 1 3 5 6 8 10 25
Descending : 25 10 8 6 5 3 1
Beberapa metode sorting yang dapat
digunakan :
-
Bubble Sort
Bubble sort adalah metode pengurutan data
dengan cara melakukan penukaran data tepat di sebelahnya secara terus menerus
sampai dipastikan dalam satu iterasi tidak ada lagi perubahan. Jika tidak ada
perubahan maka data sudah terurut.
Contoh Codingan :
#include <stdio.h>
int main()
{
int i,j,n,t,
A[100];
printf("Masukkan
banyak data : "); scanf("%d", &n);
for(i=1; i<=n;
i++)
{
printf("Data
%d = ", i); scanf("%d", &A[i]);
}
for(i=1; i<=(n-1);
i++)
{
for(j=n;
j>=(i+1); j--)
{
if(A[j-1]>A[j])
{
t=A[j-1];
A[j-1] = A[j];
A[j] = t;
}
}
}
printf("\nUrutannya
adalah : ");
for(i=1; i<=n;
i++)
{
printf("%d
", A[i]);
}
printf("\n");
return 0;
}
-
Selection Sort
Metode pengurutan ini didasarkan pada
pemilihan elemen maksimum atau minimum kemudian mempertukarkan elemen
maksimum-minimum tersebut dengan elemen terujung larik (elemen ujung kiri atau
elemen ujung kanan), selanjutnya elemen terujung itu kita “isolasi” dan tidak
diikut sertakan pada proses selanjutnya. Karena proses utama dalam pengurutan
adalah pemilihan elemen maksimum/minimum, maka metode ini disebut metode
pemilihan ( selection).
Contoh Codingan :
#include <stdio.h>
void swap(int *xp, int *yp)
{
int
temp = *xp;
*xp = *yp;
*yp = temp;
}
void selectionSort(int arr[], int n)
{
int
i, j, min_idx;
// One by one move boundary of
unsorted subarray
for
(i = 0; i < n-1; i++)
{
// Find the
minimum element in unsorted array
min_idx = i;
for (j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx
= j;
// Swap the
found minimum element with the first element
swap(&arr[min_idx],
&arr[i]);
}
}
/* Function to print an array */
void printArray(int arr[], int size)
{
int
i;
for
(i=0; i < size; i++)
printf("%d
", arr[i]);
printf("\n");
}
// Driver program to test above functions
int main()
{
int
arr[] = {64, 25, 12, 22, 11};
int
n = sizeof(arr)/sizeof(arr[0]);
selectionSort(arr, n);
printf("Sorted array:
\n");
printArray(arr, n);
return
0;
}
Searching
Searching adalah
mencari data yang dibutuhkan. Searching dalam pemrograman bisa dilakukan untuk
mencari data yang ada di dalam memory komputer.Dalam kehidupan sehari-hari kita
juga sering melakukan kegiatan searching seperti mencari data/informasi yang
ada dalam internet. Ada beberapa metode yang dapat digunakan untuk searching.
Beberapa metode yang dapat digunakan untuk
searching :
-
Linear Search
Linear Search adalah Algoritma pencarian yang paling
sederhana , karena Algoritma ini mudah untuk dipahami dan mudah untuk ditulis.
Proses pencarian Linear Search yaitu pencarian Beruntun yang membandingkan
Nilai yang dicari dengan setiap Nilai yang ada di Elemen array secara beruntun
pada umum nya ( secara Squence ) .Linear Search tidak efektif bila di pakai
untuk mencari data yang banyak karena proses mencari nya yang beruntun.
-
Merge Search
Merge sort merupakan metode sorting dengan cara divide and conquer
yaitu dengan memecah kemudian menyelesaikan setiap bagian, kemudian
menggabungkannya kembali. Pertama data dipecah menjadi 2 bagian dimana bagian
pertama merupakan setengah (jika data genap) atau setengah minus satu (jika
data ganjil) dari seluruh data, kemudian dilakukan pemecahan kembali untuk
masing-masing blok sampai hanya terdiri dari satu data tiap blok. Setelah itu
digabungkan kembali dengan membandingkan pada blok yang sama apakah data
pertama lebih besar daripada data ke-tengah+1, jika ya maka data ke-tengah+1
dipindah sebagai data pertama, kemudian data ke-pertama sampai ke-tengah
digeser menjadi data ke-dua sampai ke-tengah+1, demikian seterusnya sampai
menjadi satu blok utuh seperti awalnya. Sehingga metode merge sort merupakan
metode yang membutuhkan fungsi rekursi untuk penyelesaiannya.
Comments
Post a Comment