Membuat Program Sederhana Menggunakan C++
#include
#include
void merge(long[], int, int);
void merge_sort(long[], int);
main() {
clrscr();
const int array_size=10;
long array[array_size]={0};
for(int count_1=0;count_1
cout<<"\tElemen["<<<"]=";
#include
void merge(long[], int, int);
void merge_sort(long[], int);
main() {
clrscr();
const int array_size=10;
long array[array_size]={0};
for(int count_1=0;count_1
cout<<"\tElemen["<<<"]=";
cin>>array[count_1
}
merge_sort(array, array_size);
merge_sort(array, array_size);
gotoxy(35,11);
cout<<"Elemen-elemen yang sudah disortir :";
for(int count_2=0;count_2
cout<<"Elemen-elemen yang sudah disortir :";
for(int count_2=0;count_2
gotoxy(45,12+count_2);
cout<<"Elemen ke-"<<<"="<<
}
getch();
return 0;
}
void merge (long array[], int array_size_1, int array_size_2) {
long * temp_array=new long[array_size_1+array_size_2];
getch();
return 0;
}
void merge (long array[], int array_size_1, int array_size_2) {
long * temp_array=new long[array_size_1+array_size_2];
int count_1=0;
int count_2=0;
int count_3=0;
while(count_2
int count_2=0;
int count_3=0;
while(count_2
if (array[count_2]<=array[array_size_1+count_3]) temp_array[count_1]=array[count_2];
count_2++;}
else {
temp_array[count_1]=array[array_size_1+count_3];
temp_array[count_1]=array[array_size_1+count_3];
count_3++; }
count_1++; }
while (count_2
temp_array[count_1]=array[count_2];
count_1++; }
while (count_2
temp_array[count_1]=array[count_2];
count_1++;
count_2++; }
count_2++; }
while (count_3
temp_array[count_1]=array[array_size_1+count_3];
count_3++;
count_1++; }
for (int count_4=0;count_4
array[count_4]=temp_array[count_4];
temp_array[count_1]=array[array_size_1+count_3];
count_3++;
count_1++; }
for (int count_4=0;count_4
array[count_4]=temp_array[count_4];
for(awal;akhir;peningkatan)statemen;
delete temp_array;
}
void merge_sort(long array[], int array_size) {
if (array_size>1) { //10>1, maka,
int sub_array_size_1=array_size/2; //10:2=5
int sub_array_size_2=array_size-sub_array_size_1; //10-5=5
merge_sort(array, sub_array_size_1);
merge_sort(array+sub_array_size_1, sub_array_size_2);
merge(array, sub_array_size_1, sub_array_size_2);
}
delete temp_array;
}
void merge_sort(long array[], int array_size) {
if (array_size>1) { //10>1, maka,
int sub_array_size_1=array_size/2; //10:2=5
int sub_array_size_2=array_size-sub_array_size_1; //10-5=5
merge_sort(array, sub_array_size_1);
merge_sort(array+sub_array_size_1, sub_array_size_2);
merge(array, sub_array_size_1, sub_array_size_2);
}
Logika:
Saya
akan membuat program menggunakan C++. Program yang saya buat adalah
salah satu program yang menggunakan algoritma Devide and Conquer.
Divide:
membagi masalah menjadi beberapa masalah yang memiliki kemiripan dengan
masalah semula namun berukuran lebih kecil (idealnya berukuran hampir
sama),
Conquer: memecahkan (menyelesaikan) masingmasing masalah (secara rekursif), dan
Combine: mengabungkan solusi masing-masing masalah sehingga membentuk solusi masalah semula.
#include
#include
void merge(long[], int, int);
void merge_sort(long[], int);
main() {
clrscr();
#include
void merge(long[], int, int);
void merge_sort(long[], int);
main() {
clrscr();
Maksud
dari perintah #include adalah, agar kita dapat menggunakan library
iostream maupun conio di progrma sehingga kita bisa menggunakan syntax.
Void merge dan void merge sort digunakan agar function merge tidak
mengembalikan nilai lagi. Kemudian, main digunakan untuk memulai
program, clrscr digunakan untuk menghapus layar.
const int array_size=10;
long array[array_size]={0};
for(int count_1=0;count_1
cout<<"\tElemen["<<<"]=";
long array[array_size]={0};
for(int count_1=0;count_1
cout<<"\tElemen["<<<"]=";
cin>>array[count_1
}
Maksud
dari program diatas adalah, kita deklarasikan terlebih dahulu tipe data
dari variabel array_size dan kita beri nilai 10. Conts digunakan agar
nilai variabel tetap atau tidak berubah. Kemudian kita deklarasikan lagi
array [array_size] dengan tipe data long dan dengan nilai awal adalah
0. Selanjutnya, akan ada perulangan, jika nilai count_1=0, maka akan
dicetak text elemen dan nilai dari variabel count_1. Setiap perulangan,
akan menambah jumlah count_1 nya. Kemudian perintah cin>>array[count_1 adalah perintah agar user dapat menginput kemudian isinya dapat disimpan ke dalam array [count1].
Kemudian,
user akan memasukkan 10 nilai yang nantinya akan disimpak ke dalam
array. Prosesnya, kita akan mencari nilai terbesar dan terkecil yang
nantinya akan diurutkan dari nilai terkecil ke nilai terbesar. Pertama,
nilai yang tadi dimasukkan akan dibagi 2 sama besar. Dalam tiap-tiap
bagiannya, akan dicari nilai terkecil dan nilai terbesarnya. Kemudian,
nilai terkecil pada satu bagian akan dibandingkan pada nilai terkecil
pada bagian lain, begitu juga pada nilai terbesar. Langkah tersebut akan
diulang, sampai ditemukan nilai yang telah tersortir dari elemen
terkecil ke elemen terbesar.
0 komentar " ", Baca atau Masukkan Komentar
Posting Komentar