Algoritma dan Pemograman Review (Session 9)

Hari ini kita belajar sorting yang artinya mengurutkan suatu data.

Sorting terdiri dari:

  1. Simple
  • Bubble Sort -> penukaran data hingga data semua terurut.
  • void Bubble(int *DataArr, int n)
    {
    int i, j;
    for(i=1; i=i; j–)
    if(DataArr[j-1] > DataArr[j])
    Swap(&DataArr[j-1],&DataArr[j]);
    }
  • Selection Sort -> Memastikan data kecil dan data besar (Mencari index terkecil, disimpan, dan selama indeks yang dicek bukan terkecil, maka indeks tersebut akan tetap berada di tempatnya.)
  • for(i=0; i<=N-2; i++){ /* N=number of data */
    for(j=i; j<=N-1; j++){
    Note the index of smallest value between A[j] s/d A[N-1],
    Save it in variable k.
    Swap A[i] with A[k].
    }
    }
  • Insertion Sort -> penyisipan, bandingkan indeks yang dipilih dengan indeks yang lain, jika indeks tersebut lebih besar maka akan digeser
  • for(i=1; i<n; i++) {
    x = A[i], insert x to its suitable place between A[0] and A[i-1].
    }

2. Intermediate Sorting

  • Quick sorting -> sorting yang berdasarkan perbandingan dengan metode divide and conqueror.
  • 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].
    QuickSort(left, J-1);
    QuickSort(J+1, right);
    }
    }
  • Merge sorting -> sorting yang dilakukan dengan teknikk merge (menggabungkan dua buah array kedalam sebuah array yang baru.)

3. Searching -> mencari data yang sudah di sorting.

  • Linear Search -> dengan cara barbar (strcmp, dll tanpa function)
  • Binary Search -> Harus diurutkan lebih besar ke kanan lebih kecil ke kiri.
  • Interpolation Search -> sama dengan binary hanya berbeda formula nya.

 

Leave a Reply

Your email address will not be published. Required fields are marked *