Title | TUGAS STRUKTUR DATA Algoritma Shell Sort Ascending Dan Binary Sequential Search |
---|---|
Author | Max Aiba |
Pages | 13 |
File Size | 72.9 KB |
File Type | |
Total Downloads | 459 |
Total Views | 591 |
TUGAS STRUKTUR DATA Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C IF-5 Nama Anggota : - Rohendi 10107193 - Andri Andriyan 10107210 - Yuli Yanti A 10107218 - Jajang Kusmita 10107227 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA...
TUGAS STRUKTUR DATA
Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C
IF-5 Nama Anggota : - Rohendi
10107193
- Andri Andriyan
10107210
- Yuli Yanti A
10107218
- Jajang Kusmita
10107227
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA 2009
Algoritma procedure create_abjad (output abjad : larik, input maks_abjad : integer ) { I.S = user memasukkan nilai bertipe integer } { F.S = menampilkan abjad } Kamus i : integer Algoritma for i 1 to maks_abjad do abjad endfor endprocedure procedure isi_abjad ( I/O abjad : larik, output n : integer ) { I.S = user mamaskukn jumlah karakter dan memasukan karakter } { F.S = menampilkan nilai abjad } Kamus i : integer Algoritma Input (n) for i 1 to n do input ( abjad (n)) endfor endprocedure procedure abjad_terkecil ( I/O abjad: larik, input n: integer, output min: integer) { I.S = harga untuk variabel abjad sudah terdefinisi} { F.S = mencari abjad terkecil} Kamus i : integer Algoritma min abjad (1) for i 1 to n do if ( abjad (i) min ) then min abjad (i) endif endfor endprocedure procedure abjad_terbesar ( I/O abjad: larik, input n : integer, output max integer) { I.S = harga untuk variabel abjad sudah terdefinisi } { F.S = mencari abjad terbesar} Kamus i : integer
Algoritma min abjad (1) for i 1 to n do if ( abjad (i) max ) then max abjad (i) endif endfor endprocedure procedure binary_search(input abjad : larik, n : integer, input x : char) { I.S = elemen abjad sudah terdefinisi } { F.S = menghasilkan pencarian bagi dua} Kamus k, ia, ib : integer ketemu : bolean Algoritma ia 0 ib n-1 ketemu false while ( not ketemu ) and (ia ib) do k (ia + ib ) div 2 if ( x = abjad(k)) then ketemu true else if (x > abjad(k)) then ia k+1 else ib k-1 endif endif endwhile if ( ketemu = 1 ) then output( Data yang dicari : , x ) output ( ada pada indeks ke . k+1 ) else output ( data tidak ditemukan ) endif endprocedure procedure shortShell(input abjad : larik, n : integer) { I.S = elemen abjad sudah terdefinisi }
{ F.S = menghasilkan pengurutan shell sort} Kamus j,i,k,m,n ,mid : integer Algoritma j 0 for m n div 2 to 0 do m mod 2 for j m to n do j j+1 for i j-m to 0 do i i-m if (abjad(i+m) >= abjad(i)) then mid abjad(i) abjad(i) abjad(i+m) abjad(i+m) mid endif endfor endfor endfor endprocedure procedure tampil_abjad (input abjad : larik, n : integer, input max, min : char) { I.S = harga untuk variable max dan min sudah terdefinisi } { F.S = menampilkan abjad terendah dan abjad tertinggi} Kamus i, : integer Algoritma output ( Array Before Sorting ) output ( __________________ ) for i 1 to n do output ( abjad (i)) endfor shellsort(abjad,n); output ( Array After Before Sorting ) output ( __________________ ) for i 1 to n do output ( abjad (i)) endfor output ( __________________ ) output (min, max) output ( __________________ ) endprocedure
procedure destroy_abjad(I/O abjad : larik, n : integer) { I.S = elemen-elemen sudah terdefinisi } { F.S = menghasilkan penhancuran elemen} Kamus i, : integer Algoritma for i
1 to n do create_abjad(abjad,maks_abjad) exit 0 endfor endprocedure { Algoritma Utama } Array_abjad { I.S = user memasukan sejumlah abjad bertipe karakter} { F.S = memampilkan abjad dimasukan oleh user dan menampilkan abjad terendah dan abjad tertinggi } Kamus Const Maks_abjad : 50 Type Larik : array [1..maks_abjad] of char abjad : larik n , i, tekan, : integer max, min, x : char procedure create-abjad (output abjad : larik, input maks_abjad : integer ) procedure isi_abjad ( I/O abjad : larik, output n : integer ) procedure abjad_terendah ( I/O abjad:larik, input n: integer, output min:integer) procedure abjad_tertinggi ( I/O abjad: larik, input n:integer, output max integer) procedure binary_search(input abjad : larik, n : integer, input x : char) procedure shortShell(input abjad : larik, n : integer) procedure tampil_abjad (input abjad : larik, n : integer, input max, min : char) procedure destroy_abjad(I/O abjad : larik, n : integer) Algoritma repeat output(" Menu Pilihan") output ("___________________") output (" 1. Isi Data ") output (" 2. Cari Data ")
output (" 3. Tampil Data ") output (" 0. Keluar ") output ("___________________") output (" Masukkan pilihan anda : ") input (menu) case(tekan) '1' : isi_abjad(abjad, n) '2' : binarySearch(abjad,n,x) '3' : abjad_terkecil(abjad, max, n) abjad_terbesar(abjad, min, n) tampil(abjad, max, min, n) '0' : destroy_abjad(abjad, n) until (tekan 0) Source Code #include #include #include const int maks_abjad=50; typedef char larik [maks_abjad]; void create_abjad(larik abjad, int maks_abjad); void isi_abjad(larik abjad, int *n); void abjad_terkecil(larik abjad, char *min, int n); void abjad_terbesar(larik abjad, char *max, int n); void binarySearch(larik abjad, int n, char x); void shellsort(larik abjad,int n); void tampil(larik abjad, char min, char max, int n); void destroy_abjad(larik abjad,int n);
void create_abjad(larik abjad, int maks_abjad) { int i; for (i=0; i...