Sorting and Searching


Sorting and Searching
Sorting
Sorting pada program adalah suatu fungsi yang akan merapikan atau menata sebuah value yang dari terkecil ke terbesar atau sebaliknya
·       Tipe Sorting
1.       Ascending
Mengurutkan dari value terkecil ke terbesar.
2.        Descanting
Mengurutkan dari value terbesar ke terkecil.
·       Sorting algorithm
1.       Internal sorting
Semua data doi sorting didalam RAM
2.       External sorting
Sorting menggunakan secondary storage seperti harddisk
·       Tipe Tipe Sorting
·       Bubble sort
Membandjngkan data yang ada disebelahnya dengan cara kerja membandingkan lalu tukar

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

void merging(int low, int mid, int high) {
   int l1, l2, i;

   for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
      if(a[l1] <= a[l2])
         b[i] = a[l1++];
      else
         b[i] = a[l2++];
   }
   while(l1 <= mid)   
      b[i++] = a[l1++];
   while(l2 <= high)  
      b[i++] = a[l2++];
   for(i = low; i <= high; i++)
      a[i] = b[i];
}





Searching
Searching pada program adalah melakukan pencarian suatu value yang dinginkan.
·       Tipe tipe searching
1.       Linear search
Linear search membandingkan tiap elemen array dengan “search key”.
Algorithm:
1. n : total record of array x.
2. For each x[i], 0 £  i £ n-1, check whether x[i] = key.
3. If x[i] = key, then the searched data is found in index=i. Finished.
4. If x[i] ¹ key, then continue searching until the last data which is i = n-1.
5. If i= n-1 and x[i] ¹ key, it means the data is not exist in the list, and set index = -1. Finished.

2.       Binary search
Melakukan search dengan cara mengambil value tengah dan akan melihat ada dibagian kiri atau kanan. (Hanya dapat digunakan jika data sudah di “sort”.
Algorithm:
1. n : total record of array x.
2. left=0,  right= n-1.
3. mid =(int) (left + right)/2.
4. If x[mid]=key then index = mid. Finished.
5. If x[mid]<key then left = mid+1.
6. If x[mid]>key then right = mid-1.
7. If left £ right and x[mid] ¹ key, then repeat point 3.
8. If x[mid] ¹ key then index = -1. Finished.

3.       Interpolation search
Hampir sama seperti binary search tetapi jika binary cari dalam semua data sedangkan Interpolation search mencari pada lokasi yang diinginkan missal mencari nama Tjo ia akan ke lokasi ber value T dan tidak pada Z atau nilai tengah.
Algorithm:
1.       In the interpolation search, we'll split the data according to the following formula:
2.       If data[mid] = sought data, data has been found, searching is stopped and return mid.
3.       If data[mid]!= sought data, repeat point **
4.       **Searching is continued while sought data > data[min] and sought data < data[max].
5.       Looking for a mid value by entering into the interpolation formula
6.       If data[mid] > sought data, high = mid – 1
7.       If data[mid] < sought data, low = mid + 1
8.       It will be looped until the requirements point ** are not met then return (-1), data not found



Comments