Program Mergeshort

Smoga contoh array mergeshort ini dapat membantu kawan-kawan yang sedang kesulitan bikin tugas mergeshort dari dosen pemrograman.

array_indeks_nilai

{ i.s : User memanggil procedure isi_indeks,procedure isi_index,procedure jumlah_index dan procedure tampil_index }

{ f.s : Procedure tampil_index ditampilkan kelayar monitor }

Kamus :

const

maks_indeks=50

type

larik = array [ 1...maks_indeks ] of char

idx : larik

n,i ,idx_A, idx_B, idx_C, idx_D, idx_E , pilihan, l : integer

data : char

procedure create_index ( input maks_index : integer, output idx :larik )

procedure isi_index( I/O idx : larik, output n : integer )

procedure jumlah_index( I/O idx : larik, input n : integer, output idx_A , idx_B, idx_C, idx_D, idx_E : integer )

procedure tampil_index ( input idx : larik, input n, idx_A, idx_B, idx_C, idx_D, idx_E : integer )

prosedure mergesort(input idx : larik, input a : char, input n, bawah, atas : integer)

procedure destroyer(input n : integer, output idx : larik)

function binarysearch(input idx : larik, input n : integer, input data : char)

algoritma :

create_index ( maks_indeks, idx )

output(‘Program Menghitung Nilai Indeks Mahasiswa’)

output(‘------------------------------------------------------------’)

output(‘MENU UTAMA’)

output(‘-------------------’)

output(‘1. Isi Data’)

output(‘2. Cari Data’)

output(‘3. Tampil’)

output(‘0. Keluar’)

input(pilihan)

depend on(pilihan)

1 :

isi_idx ( idx, n )

` 2 :

Mergesort(idx, 0, n-1, n)

Input(data)

I <-- binarysearch(idx, n, data)

If(l = -1)

Output (‘data tidak ditemukan’)

Else

Output(‘data ditemukan’)

3 :

Mergesort(idx, 0, n-1, n)

jumlah_index ( idx, n, idx_A, idx_B ,idx_C, idx_D, idx_E )

tampil_index ( idx, n, idx_A, idx_B, idx_C, idx_D, idx_E )

0 :

destroyer(idx,n)

return 0

Enddepend

procedure create_index ( input maks_indeks : integer, output idx : larik )

{ i.s : User membuat tempat dimemori sebanyak maks_indeks }

{ f.s : User menginisialisasikan tempat tersebut dengan character ' ' }

kamus :

i : integer

algoritma :

for i <-- 1 to maks_indeks do

idx ( i ) <-- ' '

end for

endprocedure

procedure isi_indeks (I/O idx : larik, output n: integer )

{ i.s : User menginputkan nilai n dan nilai idx[i] }

{ f.s : Nilai idx[i] disimpan dalam memori untuk dipanggil dalam prosedur lain }

kamus :

i : integer

algoritma :

input ( n )

for i <-- 1 to n do

input ( idx ( i ) )

endfor

endprocedure

procedure jumlah_index ( I/O idx: larik, input n: integer, output idx_A, idx_B, idx_C, idx_D, idx_E: integer )

{ i.s : User Menginisialisisaikan nilai idx_A, idx_B, idx_C, idx_D, idx_E dengan nilai 0 }

{ f.s : User mennyimpan nilai idx_A, idx_B, idx_C, idx_D, idx_E yang baru dimemori untuk dipanggil dalam prosedur lain}

kamus :

i : integer

algoritma :

idx_A <-- 0

idx_B <-- 0

idx_C <-- 0

idx_D <-- 0

idx_E <-- 0

for i <-- 1 to n do

depend on ( idx ( i ) )

'A' : idx_A <-- idx_A + 1

'B' : idx_B <-- idx_B + 1

'C' : idx_C <-- idx_C + 1

'D' : idx_D <-- idx_D + 1

'E' : idx_E <-- idx_E + 1

enddepend

endfor

endprocedure

procedure tampil_index ( input idx: larik, input n, idx_A, idx_B, idx_C, idx_D, idx_E : integer )

{ i.s : User memanggil nilai idx[i] dan nilai idx_A, idx_B, idx_C, idx_D, idx_E dalam memori }

{ f.s : Nilai idx_A, idx_B, idx_C, idx_D, idx_E ditampilkan dilayar monitor }

kamus :

i : integer

algoritma :

output ( 'Data indeks nilai' )

output ( ' ----------------' )

output ( '!No!Indeks nilai!' )

output ( '-----------------' )

for i <-- 1 to n do

output ( i, idx ( i ) )

endfor

output ( '..............' )

output ( idx_A, idx_B, idx_C, idx_D, idx_E )

endprocedure

prosedure mergesort(input idx : larik, input a : char, input n, bawah, atas : integer)

{i.s : }

{f.s : }

kamus:

i, panjang, tengah, merge1, merge2 : integer

idx2 : char;

algoritma :

i <-- 0

panjang <-- (atas-bawah)+1

tengah <-- 0

merge1 <-- 0

merge2 <-- 0

if(bawah=atas)

return

tengah <-- (bawah+atas)/2

mergesort(a,bawah,tengah,n)

mergesort(a,tengah+1,atas,n)

for i <-- 1 to panjang do

{

idx2[i] <-- a[bawah+1]

merge1 <-- 0

merge2 <-- (tengah-bawah)+1

}

for i <-- 1 to panjang do

{

if(merge2 <= atas-bawah)

if(merge1 <= tengah-bawah)

if(idx2[merge1] > idx2[merge2])

a[i+bawah] <-- idx2[merge2++]

else

a[i+bawah] <-- idx2[merge1++]

else

a[i+bawah] <-- idx2[merge2++]

else

a[i+bawah] <-- idx2[merge1++]

}

endprosedure

procedure destroyer ( input n : integer, output idx : larik )

{ i.s : User menghapus data di memori }

{ f.s : User menginisialisasikan tempat tersebut dengan character ' ' }

kamus :

i : integer

algoritma :

for i <-- 1 to n_do

idx ( i ) <-- ' '

end for

endprocedure

function binarysearch(input idx : larik, input n : integer, input data : char)

{i.s : }

{f.s : }

kamus :

kiri, kanan, tengah : integer

algoritma :

kanan <-- n-1

while(kiri <= kanan)

{

tengah <-- (kiri+kanan)/2

if(idx[tengah]=data)

return tengah;

else

{

if(idx[tengah] <>

kiri <-- tengah+1

else

kanan <-- tengah+1

}

}

return -1

Read Full...
 
Powered By Blogger
Powered By Blogger
Powered By Blogger
© Grunge Theme Copyright by Sagala Aya Didieu | Template by Blogger Templates | Blog Trick at Blog-HowToTricks