Hari ini kita belajar sorting yang artinya mengurutkan suatu data.
Sorting terdiri dari:
- 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.