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["<<<"]=";
cin>>array[count_1
}
merge_sort(array, array_size);
gotoxy(35,11);
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];
int count_1=0;
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];
count_3++; }
count_1++; }
while (count_2
temp_array[count_1]=array[count_2];
count_1++;
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];
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);
}
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();
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["<<<"]=";
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