Tuesday, December 18, 2018

SORTING


Apa Itu Sorting?

        Sorting adalah proses yang mempercepat searching operation di dalam sebuah list
Jenis-jenis sorting :

      Simple:
     Bubble sort
     Selection sort
     Insertion sort
      Intermediate:
     Quick Sort
     Merge Sort

Bubble Sort
Membandingkan 2 value yang bersebelahan lalu diabandingkan kemudian ditukar jika dibutuhkan.

void Bubble(int *DataArr, int n)
{
                        int i, j;
                        for(i=1; i<n; i++)
                                    for(j=n-1; j>=i; j--)
                                                if(DataArr[j-1] > DataArr[j])
                         Swap(&DataArr[j-1],&DataArr[j]);
}

Selection Sort
for(i=0; i<N-1; i++){      /* N=number of data */
            Set idx_smallest equal to i
            for(j=i+1; j<N; j++){
                                    If array[ j ] < array [ idx_smallest ] then idx_smallest = j
    }
            Swap array[ i ] with array[ idx_smallest ]
}
                                                           
Insertion Sort
for(i=1; i<n; i++) {
    x = A[i], insert x to its suitable place between A[0] and A[i-1].
}

Quick Sort
void QuickSort(int left, int right)
{
      if(left < right){
            //arrange elements  R[left],...,R[right] that
            //producing new sequence:
            R[left],...,R[J-1] < R[J] and R[J+1],...,R[right] > R[J].
            QuickSort(left, J-1);
            QuickSort(J+1, right);
       }
}

Merge Sort
Algoritma untuk mensorting didasari dari divide and conquer algorithm
Divide and conquer adalah algoritma general paradigm design
            Divide: membagi inputan data menjadi subset yang disjoin
            Recur: memecahkan masalah dari sub problem yang berhubungan dengan subset
            Conquer: menggabungkan solusi-solusi untuk setiap subset menjadi 1 solusi






No comments:

Post a Comment