> shio naga: Insertion Sort

Sabtu, 27 Juni 2009

Insertion Sort

Pengurutan dengan cara membandingkan data ke-I (dimana I dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yag lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya.

Langkah 1 :

i= 1 2 3 4 5 6

22 10 15 3 8 2

Temp cek geser

10 temp<22 data ke-1-> posisi 2

Temp menempati posisi ke-1

10 22 15 3 8 2

Langkah 2 :

i= 1 2 3 4 5 6

10 22 15 3 8 2

Temp cek geser

15 temp<22 data ke-2-> posisi 3

Temp menempati posisi ke-2

10 15 22 3 8 2

Langkah 3 :

i= 1 2 3 4 5 6

10 15 22 3 8 2

Temp cek geser

3 temp<22 data ke-3-> posisi 4

temp<15 data ke-2 ->posisi 3

temp<10 data ke-1 ->posisi 2

Temp menempati posisi ke-1

3 10 15 22 8 2

Langkah 4 :

i= 1 2 3 4 5 6

3 10 15 22 8 2

Temp cek geser

8 temp<22 data ke-4-> posisi 5

temp<15 data ke-3 ->posisi 4

temp<10 data ke-2 ->posisi 3

temp>3 -

Temp menempati posisi ke-2

3 8 10 15 22 2

Langkah 5 :

i= 1 2 3 4 5 6

3 8 10 15 22 2

Temp cek geser

2 temp<22 data ke-5-> posisi 6

temp<15 data ke-4 ->posisi 5 temp<10 data ke-3 ->posisi 4

temp<8 data k-2->posisi 3

temp < style=""> data ke-1 ->data ke 2

Temp menempati posisi ke-1

2 3 8 10 15 22

Terurut :

2 3 8 10 15 22

algoritma insertion sort :

Procedure asc_Insert;

Var I,j,temp:byte;

Begin

for i:=2 to max do

begin

temp:=data[i];

j:=i-1;

while(data[j]>temp) and (j>0) do

begin

data[j+1]:=data[j]

dec(j);

end;

Data[j+1]:=temp;

End;

End;

Procedure decs_Insert;

Var I,j,temp:byte;

Begin

for i:=2 to max do

begin

temp:=data[i];

j:=i-1;

while(data[j]0) do

begin

data[j+1]:=data[j]

dec(j);

end;

Data[j+1]:=temp;

End;

End;

Tidak ada komentar:

Posting Komentar