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 2Temp 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]
begin
data[j+1]:=data[j]
dec(j);
end;
Data[j+1]:=temp;
End;
End;
Tidak ada komentar:
Posting Komentar