SORTING AND SEARCHING
HI CODER!
WELCOME BACK WELCOME BACK!
Hari ini kita akan belajar apa sih itu sorting dan searching sebelum kita mulai belajar silahkan liat video dibawah dulu
SORTING
Dari diatas kita dapat mengerti terdapat beberapa cara kita mensorting atau menata sesuatu dari beberapa hal itu kita dapat mengerti bagaimana logic kita untuk kita dapat coding dalam bahasa C.
Tanpa berbasa - basi inilah beberapa koding tentang sorting:
1. Bubble Sort
void bubblesort()
{
int max = 0;
int temp = 0;
for(i=0;i<11;i++)
{
for(j=0;j<10-i;j++)
{
if(angka[j] > angka[j+1])
{
temp = angka[j];
angka[j] = angka[j+1];
angka[j+1] = temp;
}
}
}
for(i=0;i<11;i++)
{
printf("%d ",angka[i]);
}
}
2. Quick Sort
#include <stdio.h>
int array[] = {4,25,31,7,6,9,21,33,44,45,30};
int n = 11;
int i;
void display()
{
for(i = 0; i < n; i++)
{
printf("%d, ",array[i]);
}
printf("\n");
}
void swap(int x, int y)
{
int temp = array[x];
array[x] = array[y];
array[y] = temp;
}
int partition(int left, int right, int pivot) {
int leftPointer = left - 1;
int rightPointer = right;
while(true)
{
while(array[++leftPointer] < pivot)
{
}
while(array[--rightPointer] > pivot && rightPointer > 0)
{
}
if(leftPointer >= rightPointer)
{
break;
}
else
{
printf("item swapped :%d <-> %d\n", array[leftPointer], array[rightPointer]);
swap(leftPointer, rightPointer);
}
}
printf("Pivot swap :%d <-> %d\n", array[leftPointer],array[right]);
swap(leftPointer, right);
printf("Array: ");
display();
return leftPointer;
}
void quickSort(int left, int right)
{
if(right - left <= 0)
{
return;
}
else
{
int pivot = array[right];
int partitionPoint = partition(left, right, pivot);
quickSort(left, partitionPoint-1);
quickSort(partitionPoint+1, right);
}
}
int main()
{
display();
quickSort(0, n-1);
}
Ini adalah 2 yang bubble sort adalah yang paling lambat dan quick sort adalah yang tercepat kenapa saya mengambil dua ini karena untuk mengerti quick sort kita perlu paham bubble sort terlebih dahuluuu.
SEARCHING
Searching atau yang biasa kita mngerti searching adalah menjelajahi dimana kita mencari file atau mencari kata mencari sesuatu dalam file kita. Kita dapat gunakan coding searching untuk melakukannya. Tanpa berbasa basi mari kita liat kodingannya
1. Linear Search
int search;
scanf("%d",&search);
for(i=0;i<10;i++)
{
if(angka[i] == search)
{
printf("Ada %d\n",i+1);
break;
}
}
if(i == 10)
{
printf("GAK ADA\n");
}
2.Interpolation Search
int interpolationSearch(int arr[], int n, int x)
{
// Find indexes of two corners
int lo = 0, hi = (n - 1);
// Since array is sorted, an element present
// in array must be in range defined by corner
while (lo <= hi && x >= arr[lo] && x <= arr[hi])
{
// Probing the position with keeping
// uniform distribution in mind.
int pos = lo + (((double)(hi-lo) /
(arr[hi]-arr[lo]))*(x - arr[lo]));
// Condition of target found
if (arr[pos] == x)
return pos;
// If x is larger, x is in upper part
if (arr[pos] < x)
lo = pos + 1;
// If x is smaller, x is in the lower part
else
hi = pos - 1;
}
return -1;
}
// Driver Code
int main()
{
// Array of items on which search will
// be conducted.
int arr[] = {10, 12, 13, 16, 18, 19, 20, 21, 22, 23,
24, 33, 35, 42, 47};
int n = sizeof(arr)/sizeof(arr[0]);
int x = 18; // Element to be searched
int index = interpolationSearch(arr, n, x);
// If element was found
if (index != -1)
printf("Element found at index %d", index);
else
printf("Element not found.");
return 0;
}
Alasan saya mengambil dua kodingan ini Linear adalah yang terlambat dan Interpolation yang tercepat adalah sama hal nya dengan sorting untuk mengerti Interpolation kita perlu mengerti linear terlebih dahulu.
SEKIAN KODING HARI INI LELAH SAYA!
HAPPY CODING!
:)
WELCOME BACK WELCOME BACK!
Hari ini kita akan belajar apa sih itu sorting dan searching sebelum kita mulai belajar silahkan liat video dibawah dulu
SORTING
Dari diatas kita dapat mengerti terdapat beberapa cara kita mensorting atau menata sesuatu dari beberapa hal itu kita dapat mengerti bagaimana logic kita untuk kita dapat coding dalam bahasa C.
Tanpa berbasa - basi inilah beberapa koding tentang sorting:
1. Bubble Sort
void bubblesort()
{
int max = 0;
int temp = 0;
for(i=0;i<11;i++)
{
for(j=0;j<10-i;j++)
{
if(angka[j] > angka[j+1])
{
temp = angka[j];
angka[j] = angka[j+1];
angka[j+1] = temp;
}
}
}
for(i=0;i<11;i++)
{
printf("%d ",angka[i]);
}
}
2. Quick Sort
#include <stdio.h>
int array[] = {4,25,31,7,6,9,21,33,44,45,30};
int n = 11;
int i;
void display()
{
for(i = 0; i < n; i++)
{
printf("%d, ",array[i]);
}
printf("\n");
}
void swap(int x, int y)
{
int temp = array[x];
array[x] = array[y];
array[y] = temp;
}
int partition(int left, int right, int pivot) {
int leftPointer = left - 1;
int rightPointer = right;
while(true)
{
while(array[++leftPointer] < pivot)
{
}
while(array[--rightPointer] > pivot && rightPointer > 0)
{
}
if(leftPointer >= rightPointer)
{
break;
}
else
{
printf("item swapped :%d <-> %d\n", array[leftPointer], array[rightPointer]);
swap(leftPointer, rightPointer);
}
}
printf("Pivot swap :%d <-> %d\n", array[leftPointer],array[right]);
swap(leftPointer, right);
printf("Array: ");
display();
return leftPointer;
}
void quickSort(int left, int right)
{
if(right - left <= 0)
{
return;
}
else
{
int pivot = array[right];
int partitionPoint = partition(left, right, pivot);
quickSort(left, partitionPoint-1);
quickSort(partitionPoint+1, right);
}
}
int main()
{
display();
quickSort(0, n-1);
}
Ini adalah 2 yang bubble sort adalah yang paling lambat dan quick sort adalah yang tercepat kenapa saya mengambil dua ini karena untuk mengerti quick sort kita perlu paham bubble sort terlebih dahuluuu.
SEARCHING
Searching atau yang biasa kita mngerti searching adalah menjelajahi dimana kita mencari file atau mencari kata mencari sesuatu dalam file kita. Kita dapat gunakan coding searching untuk melakukannya. Tanpa berbasa basi mari kita liat kodingannya
1. Linear Search
int search;
scanf("%d",&search);
for(i=0;i<10;i++)
{
if(angka[i] == search)
{
printf("Ada %d\n",i+1);
break;
}
}
if(i == 10)
{
printf("GAK ADA\n");
}
2.Interpolation Search
int interpolationSearch(int arr[], int n, int x)
{
// Find indexes of two corners
int lo = 0, hi = (n - 1);
// Since array is sorted, an element present
// in array must be in range defined by corner
while (lo <= hi && x >= arr[lo] && x <= arr[hi])
{
// Probing the position with keeping
// uniform distribution in mind.
int pos = lo + (((double)(hi-lo) /
(arr[hi]-arr[lo]))*(x - arr[lo]));
// Condition of target found
if (arr[pos] == x)
return pos;
// If x is larger, x is in upper part
if (arr[pos] < x)
lo = pos + 1;
// If x is smaller, x is in the lower part
else
hi = pos - 1;
}
return -1;
}
// Driver Code
int main()
{
// Array of items on which search will
// be conducted.
int arr[] = {10, 12, 13, 16, 18, 19, 20, 21, 22, 23,
24, 33, 35, 42, 47};
int n = sizeof(arr)/sizeof(arr[0]);
int x = 18; // Element to be searched
int index = interpolationSearch(arr, n, x);
// If element was found
if (index != -1)
printf("Element found at index %d", index);
else
printf("Element not found.");
return 0;
}
Alasan saya mengambil dua kodingan ini Linear adalah yang terlambat dan Interpolation yang tercepat adalah sama hal nya dengan sorting untuk mengerti Interpolation kita perlu mengerti linear terlebih dahulu.
SEKIAN KODING HARI INI LELAH SAYA!
HAPPY CODING!
:)
Komentar
Posting Komentar