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!
:)

Komentar