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]);
}
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
If array[ j ] < array [ idx_smallest ] then idx_smallest = j
}
Swap array[ i ] with array[ idx_smallest ]
}
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].
}
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].
//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);
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