Minggu, 15 Mei 2016

DIKTAT BAB 8

Assalamualaikum.wr.wb.
Pada kesempatan kali ini.Kali ini kami akan membahas tentang kasus-kasus dan latihan-latihan yang ada di Diktat Bab 8 ini.
Langsung saja kita ke penyelesaiannya :)



Kasus 7.6



C++



#include <iostream>

using namespace std;

typedef int larik[10];

void masuk_data(int A[], int n)

{ int i;

for (i = 0; i < n; i++)

{ cout << "Data ke-%d : ",i+1;

cin >> A[i];

}

}

void cetak_data(const int A[], int n) {

int i;

for (i = 0; i < n; i++)

cout << "%d ",A[i];

cout << "\n";

}

void merge(larik a, int kiri, int tengah, int kanan)

{ int bagianKiri, posTemp, banyakElemen, i;

larik temp;

bagianKiri = tengah - 1;

posTemp = kiri;

banyakElemen = kanan - kiri + 1;

while ((kiri <= bagianKiri) &&

(tengah <= kanan))

if ((a[kiri] <= a[tengah]))

{ temp[posTemp] = a[kiri];

posTemp = posTemp + 1;

kiri = kiri + 1;

} else

{ temp[posTemp] = a[tengah];

posTemp = posTemp + 1;

tengah = tengah + 1;

}

/* kopi bagian kiri */

while ((kiri <= bagianKiri)) {

temp[posTemp] = a[kiri];

posTemp = posTemp + 1;

kiri = kiri + 1;

}

/* kopi bagian kanan */

while ((tengah <= kanan)) {

temp[posTemp] = a[tengah];

posTemp = posTemp + 1;

tengah = tengah + 1;

}

/* kopi kembali ke array asal */

for (i = 1; i <= banyakElemen; i++)

{ a[kanan] = temp[kanan];

kanan = kanan - 1;

}

}

void merge_sort(larik A, int kiri, int kanan)

{ int tengah;

if ((kiri < kanan))

{ tengah = (kiri + kanan) / 2;

merge_sort(A, kiri, tengah);

merge_sort(A, tengah + 1, kanan);

merge(A, kiri, tengah + 1, kanan);

}

}

main() {

int n;

larik data;

cout << "Berapa data array : ";

cin >> n;

masuk_data(data, n);

cetak_data(data, n);

merge_sort(data, 0, n-1);

cetak_data(data, n);

return 0;

}













Kasus 7.7



C++



#include <iostream>

using namespace std;

void masuk_data(int A[], int n) {

int i;

for (i = 0; i < n; i++) {

cout << "Data ke-%d : ",i+1;

cin >> A[i];

}

}

void cetak_data(const int A[], int n) {

int i;

for (i = 0; i < n; i++)

cout << "%d ",A[i];

cout << "\n";

}

void tukar (int *a, int *b)

{ int temp;

temp = *a;

*a = *b;

*b = temp;

}

void quick_sort(int data[], int L, int R) {

int i, j, p;

p = data[(L+R) / 2];

i = L;

j = R;

while (i<=j) {

while (data[i] < p) i++;

while (data[j] > p) j--;

if (i<=j)

{ tukar(&data[i], &data[j]);

i++;

j--;

}

}

if (L < j) quick_sort(data,L,j);

if (i < R) quick_sort(data,i,R);

}

void main() {

int data[10], n;

cout << "Banyak data : ");

cin >> n);

masuk_data(data,n);

cetak_data(data,n);

quick_sort(data,0,n-1);

cetak_data(data,n);

}











Latihan 8

C++





Latihan 9

C++




Latihan 10

C++










jika Ingin melengkapi jawaban Diktat Bab 8 nomor 1,2,3 dan latihan 1,2,3,4, dan 5 silahkan klik link di bawah ini:  http://fitriadinasilmiadiatinewblogaddress.blogspot.co.id/ dan jawaban   link di bawah ini http://pusparatna22.blogspot.co.id
   . Terima Kasih semoga bermanfaat an selamat mencoba..

Tidak ada komentar:

Posting Komentar