Anda di halaman 1dari 6

I. Pengertian Algoritma Pengurutan. 1.

Bubble Sort
Bubble sort adalah metode/algoritma pengurutan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut.

2. Exchange Sort
Exchange sort adalah melakukan pembandingan antar data, dan melakukan pertukaran apabila urutan yang didapat belum sesuai.

3. Selection Sort
Selection sort adalah mencari elemen yang tepat untuk diletakkan diposisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebutd itemukan.

4. Insertion Sort
Insertion sort adalah mencari tempat yang tepat untuk suatu elemen data yang telah diketahui ke dalam subkumpulan data yang telah terurut, kemudian melakukan penyisipan (insertion) data di tempat yang tepat tersebut

5. Heap Sort
Heap sort adalah algoritma pengurutan data berdasarkan perbandingan, dan termasuk golongan selection sort. Algoritma pengurutan heap dimulai dari membangun sebuah heap dari kumpulan data yang ingin diurutkan, dan kemudian menghapus data yang mempunyai nilai tertinggi dan menempatkan dalam akhir dari larik yang telah terurut. Setelah memindahkan data dengan nilai terbesar, proses berikutnya adalah membangun ulang heap dan memindahkan nilai terbesar pada heap tersebut dan menempatkannya dalam tempat terakhir pada larik terurut yang belum diisi data lain. Proses ini berulang sampai tidak ada lagi data yang tersisa dalam heap dan larik yang terurut penuh.

6. Quick Sort
Quick sort adalah dimulai dengan menscan daftar yang disortir untuk nilai median. Nilai ini, yang disebut tumpuan (pivot), kemudian dipindahkan ke satu sisi pada daftar dan butir-butir yang nilainya lebih besar dari tumpuan di pindahkan ke sisi lain.

7. Merge Sort
Merge sort adalah data dibagi menjadi subkumpulan-subkumpulan yang kemudian

subkumpulan tersebut diurutkan secara terpisah, dan kemudian digabungkan kembali dengan metode merging. algoritma ini melakukan metode pengurutan merge sort juga untuk mengurutkan subkumpulandata tersebut, atau dengan kata lain, pengurutan dilakukan secara rekursif.

II. Main Program Algoritma Pengurutan 1. Bubble Sort


void buble_sort(int data[]) { for(int i=1;i<n,i++){ for(int j=n-1;j>=i,j--){ if(data[j]<data[j-1]) tukar(&data[j],(&data[j-1]); } } }

2. Exchange Sort
void exchange_sort(int data[]) { for(int i=0;i<n-1,i++){ for(int j=i+1;j<n,j++){ if(data[j]<data[i]) tukar(&data[i],(&data[j]); } } }

3. Insertion Sort

void insertion_sort(int data[]) { int temp,i,j; for(i=1;i<=n;i++) { temp = data[i]; j = i -1; while(data[j]>temp && j>=0) { data[j+1] = data[j]; j--; } data[j+1]=temp; } }

4. Selection Sort
void selection_sort(int data[]) { int pos,i,j; for(i=1;i<=n-1;i++) { pos = i; for(j = i+1;j<=n;j++) { if(data[j] < data[pos]) pos = j; } if(data[j] < data[pos]) pos = j; } }

5. Heap Sort
void HeapSort(int a[]) { BuildMaxHeap(a); for (int i = heapSize; i > 0; i--) { int temp = a[0]; a[0] = a[heapSize - 1]; a[heapSize - 1] = temp; heapSize = heapSize - 1; heapify(a, 0); } }

6. Quick Sort
void quick_sort(int data[]) { while(A[j] > x) j--; while(A[i] < x) i++; if (i < j){ Swap(A, i, j); j--; i++ } else return j;

7. Merge Sort
void mergesort::m_sort(int data[], int temp[], int kiri, int kanan){ int tengah; if (kanan>kiri){ tengah=(kanan+kiri)/2; m_sort(data, temp, kiri, tengah); m_sort(data, temp, (tengah+1), kanan); merge(data, temp,kiri, (tengah+1), kanan); } } void mergesort::merge(int data[], int temp[], int kiri, int tengah, int kanan){ int bagiankiri, banyak, tmp_pos; bagiankiri = (tengah-1); tmp_pos = kiri; banyak = ((kanan-kiri)+1); while((kiri <= bagiankiri) && (tengah <= kanan)){ if(data[kiri] <= data[tengah]){ temp[tmp_pos] = data[kiri]; tmp_pos = tmp_pos+1; kiri = kiri+1; } Else { temp[tmp_pos] = data[tengah]; tmp_pos = tmp_pos+1; tengah = tengah+1; }

while(kiri <= bagiankiri){ temp[tmp_pos]=data[kiri]; kiri = kiri+1; tmp_pos = tmp_pos+1; } while (tengah <= kanan){ temp[tmp_pos]=data[tengah]; tengah = tengah+1; tmp_pos = tmp_pos+1; } for(int i=0;i<banyak;i++){ data[kanan]=temp[kanan]; kanan = kanan-1; output(data,banyak); } }

Anda mungkin juga menyukai