Sorting adalah suatu proses pengurutan data yang sebelumnya
disusun secara acak atau tidak teratur menjadi urut dan teratur menurut suatu
aturan tertentu.
Pada umumnya ada 2 macam pengurutan : 
                1.
Pengurutan secara ascending ( urutan naik)
                2.
Pengurutan secara descending (urutan turun)
Contoh pengurutan data :
·        
Data Acak : 5 6 8 1 3 25 10
·        
Ascending : 1 3 5 6 8 10 25
·        
Descending : 25 10 8 6 5 3 1
Selection Sort
- Merupakan
     kombinasi antara sorting dan searching
 - Untuk
     setiap proses, akan dicari elemen elemen yang belum diurutkan yang
     memiliki nilai terkecil atau terbesar akan dipertukarkan ke posisi yang
     tepat di dalam array
 - Selama
     proses pembandingan dan pengubahan hanya dilakukan pada indeks pembanding
     saja, pertukaran data secara fisik terjadi pada akhir proses.
 
Untuk ilustrasi bisa di lihat di gambar di bawah 
Data : 5, 1, 12, -5, 16, 2, 12, 14

Contoh coding 
selection sort
#include
  <iostream.h> 
#include
  <stdio> 
#include
  <conio.h> 
int
  selectionsort (int array[], const int size) 
 { 
    int i, j, kecil, temp; 
    for (i=0; i<size; i++) 
    { 
        kecil=i; 
        for (j=i; j<size; j++) 
        { 
             if (array[kecil]>array[j]) 
             { 
                  kecil = j; 
             } 
        } 
        temp = array [i]; 
    array[i] = array[kecil]; 
    array[kecil] = temp; 
    } 
 } 
int main() 
{ 
    int NumList[8] = {5, 34, 32, 25, 75, 42,
  22, 2}; 
    int temp; 
    cout<<"Data sebelum diurutkan:
  \n"; 
    for (int d=0; d<8; d++) 
    { 
        
  cout<<setw(3)<<NumList[d]; 
    } 
    cout<<"\n\n"; 
    selectionsort(NumList,8); 
    cout<<"Data setelah
  diurutkan:\n"; 
    for (int iii=0; iii<8; iii++) 
   
  cout<<setw(3)<<NumList[iii]<<endl<<endl; 
    getch(); 
} 
 | 
 
Insertion Sort
·        
Mirip dengan cara orang mengurutkan kartu, selembar
demi selembar kartu diambil dan disisipkan ke tempat yang seharusnya
·        
Pengurutan dimulai dari data ke 2 sampai dengan
data terakhir , jika ditemukan data yang lebih kecil, maka akan di tempatkan
(diinsert) di posisiyang seharusnya.
·        
Pada penyisipan elemen maka elemen – elemen lain
akan bergeser ke belakang
#include
  <iostream.h> 
#include
  <conio.h> 
int
  data[10],data2[10]; 
int n; 
void
  tukar(int a, int b) 
{ 
    int t; 
    t = data[b]; 
    data[b] = data[a]; 
    data[a] = t; 
} 
void
  insertion_sort() 
{ 
    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; 
    } 
} 
void main() 
{ 
    cout<<"INSERTION SORT PROGRAM"<<endl; 
    cout<<"Jumlah Data :
  ";    cin>>n; 
    for(int i=1;i<=n;i++) 
    { 
        cout<<"Data ke
  "<<i<<"   :
  ";    cin>>data[i]; 
        data2[i]=data[i]; 
    } 
    insertion_sort(); 
    cout<<"Data Setelah di Sort :
  "; 
    for(i=1; i<=n; i++) 
    { 
        cout<<"
  "<<data[i]; 
    } 
} 
 | 
 
Source : Presentasi Matakuliah Struktur Data Stikom Bali “Sorting”







0 komentar:
Posting Komentar