Jumat, 13 Mei 2016

sorting menggunakan metode insertion


  • permasalahan
    mengurutkan data dengan metode insertion.
    misal:
    0 0 0 0 → 4 → 4 0 0 0
    4 0 0 0 → 1 → 1 4 0 0
    1 4 0 0 → 2 → 1 2 4 0
    1 2 4 0 → 3 → 1 2 3 4

  • analisis
    • untuk data pertama masukan ke indek pertama sebagai acuan berikutnya
    • masukkan input, cek nilai diurutkan dari depan apakah ada nilai yang lebih besar dari yang diinputkan maka catat posisinya dan geser posisi tersebut dan setelahnya. kemudian sisipkan inputan tersebut di posisi yang dicatat.
    • ulangi langkah kedua sampai selesai inputnya.
  • flowchart raptor
    gsr(untuk menggeser indek)

    main

    po(mencari posisi)

    t(untuk menampilkan)
  • c++
#include <iostream>
using namespace std;
int d[8]={0};

int po(int a){
int p=-1;
for(int i=0;i<8;i++){
if(a>d[i]&&d[i]!=0){
p=i;}
}
return p+1;
}

t(){
for(int i=0;i<8;i++){
cout<<d[i]<<" ";
}
cout<<endl;
}
void gsr(int a){
int t;
for(int i=a;i<7;i++){
t=d[i+1];
d[i+1]=d[a];
d[a]=t;

}
}
int main(){
int in;
for(int i=0;i<8;i++){
cin>>in;

if(po(in)<=i) {
gsr(po(in));
d[po(in)]=in;
} else
d[i]=in;
t();
}
}
  • program

Tidak ada komentar:

Posting Komentar