Searching dan Sorting (Bahasa Pemgoraman C)
Sorting
Bubble Sorting
# Proses pengurutannya berdasarkan perbandingan item di sebelahnya# Biasanya perbandingannya dilakukan dari belakang
# Akan melakukan sebanyak n-1 cycle
Coding dalam bahasa C:
#include <stdio.h>
void swapz (int *a,int *b)
{
int c = *b;
*b = *a;
*a = c;
}
int main()
{
int array[100], n, c, d, swap;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
{
scanf("%d", &array[c]); //ingat untuk selalu menggunakan for untuk scan dan print elemen atau maximal index
}
for (c = 0 ; c < n - 1; c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (array[d] > array[d+1]) /* urutan ascending < */
{
swapz(&array[d],&array[d+1]);
}
}
}
printf("Sorted list in ascending order:\n");
for (c = 0; c < n; c++)
{
printf("%d ", array[c]);
}
return 0;
}
Selection Sorting
# Satu index membanding - bandingkan index yang lain sampai menemukan index yang lebih kecil atau lebih besar# Prosesnya berupa tukar menukar dengan index yang berhubungan (lebih keci/besar)
# Akan melakukan sebanyak n-1 cycle
Coding dalam bahasa C :
Insertion Sorting
# Proses nya menggunakan temp atau sebuah tempat untuk menyimpan bilangan lalu ditaruh di index yang tepat.Menurut saya metode sorting yang paling mudah adalah bubble sorting karena dalam proses pencariannya metode itulah yang paling cepat.
Searching
Linear Searching
# Proses pencarian satu per satuCodingan dalam bahasa C:
*biasanya digunakan untuk mencari di dalam sebuah file*
#include <stdio.h>
int main()
{
int array[100], search, c, n, count = 0;
printf("Masukkan jumlah maksimum elemen dalam array\n");
scanf("%d", &n);
printf("Masukkan angka sebanyak %d\n", n);
for (c = 0; c < n; c++)
{
scanf("%d", &array[c]);
}
printf("Enter a number to search\n");
scanf("%d", &search);
for (c = 0; c < n; c++)
{
if (array[c] == search)
{
printf("%d terdapat di baris %d.\n", search, c+1);
count++;
}
}
if (count == 0)
printf("%d tidak terdapat di dalam array.\n", search);
else
printf("%d muncul %d kali dalam array.\n", search, count);
return 0;
}
Binary Searching
# Caru nilai tengah dari sebuah index lalu dibandingkanCodingan dalam bahasa C:
#include <stdio.h>
int main()
{
int c, first, last, middle, n, search, array[100];
printf("Enter number of elements\n");
scanf("%d",&n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d",&array[c]);
printf("Enter value to find\n");
scanf("%d", &search);
first = 0;
last = n - 1;
middle = (first+last)/2;
while (first <= last)
{
if (array[middle] < search)
{
first = middle + 1;
}
else if (array[middle] == search)
{
printf("%d found at location %d.\n", search, middle+1);
break;
}
else
{
last = middle - 1;
}
middle = (first + last)/2;
}
if (first > last)
{
printf("Not found! %d isn't present in the list.\n", search);
}
return 0;
}
Interpolation Searching
# Key lebih besar maka ada di sebelah kananCodingan dalam bahasa C :
Comments
Post a Comment