Minggu, 16 Desember 2018

Sorting

Sorting adalah mengurutkan data bisa dari yang kecil ke yang besar (ascending) atau sebaliknya (descending).

Sorting bisa dilakukan secara internal di dalam RAM ataupun secara eksternal di penyimpanan sekunder.

Sorting:
- Bubble Sort
Algoritmanya:

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 
Algoritmanya:

     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 
Algoritmanya:

for(i=1; i<n; i++) {
          x = A[i], insert x to its suitable place between A[0] and A[i-1].
}




- Quick Sort 
Algoritmanya:


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
Cara kerjanya:
1. Divide: Bagilah input data menjadi 2 subset disjoint
2. Recur: Selesaikan sub-sub problem dalam subset
3. Conquer: Gabungkan solusi tiap subset menjadi satu



Yang paling mudah digunakan adalah bubble sort. Tetapi untuk data yang banyak perlu waktu yang lama untuk menyelesaikan pengurutannya.

Yang paling sulit digunakan adalah merge sort. Biasanya Quick Sort lebih cepat daripada Merge Sort, tetapi ada di beberapa situasi Merge Sort lah yang lebih cepat.


2201770896
skyconnectiva.com
binus.ac.id
Felix Chrissandy


Tidak ada komentar:

Posting Komentar