Jumat, 27 November 2015
Kamis, 19 November 2015
Jumat, 06 November 2015
Senin, 02 November 2015
Program C++ Rekursif Perkalian
#include <iostream>
#include <conio.h>
using namespace std;
int perkalian(int, int);
void main()
{
int bil1, bil2;
puts("Menghitung perkalian dari 2 bilangan");
printf("Masukkan bilangan pertama: ");
scanf("%d", &bil1);
printf("Masukkan bilangan kedua: ");
scanf("%d", &bil2);
printf("Hasil perkalian %d dengan %d adalah: %d\n", bil1, bil2, perkalian(bil1, bil2));
getch();
}
int perkalian(int bilangan1, int bilangan2)
{
if(bilangan2==1)return bilangan1;
else return bilangan1+perkalian(bilangan1,bilangan2-1);
}
void main()
{
int bil1, bil2;
puts("Menghitung perkalian dari 2 bilangan");
printf("Masukkan bilangan pertama: ");
scanf("%d", &bil1);
printf("Masukkan bilangan kedua: ");
scanf("%d", &bil2);
printf("Hasil perkalian %d dengan %d adalah: %d\n", bil1, bil2, perkalian(bil1, bil2));
getch();
}
int perkalian(int bilangan1, int bilangan2)
{
if(bilangan2==1)return bilangan1;
else return bilangan1+perkalian(bilangan1,bilangan2-1);
}
program C++ rekursif untuk Binary Search
Binary
Search merupakan metode pencarian dimana data harus diurutkan terlebih dahulu
sebelum dilakukan proses pencarian. Pada metode pencarian ini, data dibagi
menjadi dua bagian untuk setiap tahap pencarian.
Algoritma
binary search :
- Data diambil dari posisi 1 sampai posisi akhir n
- Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir) / 2
- Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar?
- Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1
- Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1
- Jika data sama, berarti ketemu.
Berikut ini program C++ Binary Search :
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int data[7] = {1, 8, 2, 5, 4, 9, 7};
int cari;
void selection_sort()
{
int temp, min, i, j;
for(i=0; i<7;i++)
{
min = i;
for(j = i+1; j<7; j++)
{
if(data[j]<data[min])
{
min=j;
}
}
temp = data[i];
data[i] = data[min];
data[min] = temp;
}
}
void binarysearch()
{
//searching
int awal, akhir, tengah, b_flag = 0;
awal = 0;
akhir = 7;
while (b_flag == 0 && awal<=akhir)
{
tengah = (awal + akhir)/2;
if(data[tengah] == cari)
{
b_flag = 1;
break;
}
else if(data[tengah]<cari)
awal = tengah + 1;
else
akhir = tengah -1;
}
if(b_flag == 1)
cout<<"\nData ditemukan pada index
ke-"<<tengah<<endl;
else
cout<<"\nData tidak
ditemukan\n";
}
int main()
{
cout<<"\t 'BINARY
SEARCH'"<<endl;
cout<<"\t====================="<<endl;
cout<<"\nData
: ";
//tampilkan data awal
for(int x = 0; x<7; x++)
cout<<setw(3)<<data[x];
cout<<endl;
cout<<"\nMasukkan data yang ingin
Anda cari : ";
cin>>cari;
cout<<"\nData diurutkan : ";
//urutkan data dengan selection sort
selection_sort();
//tampilkan data setelah diurutkan
for(int x = 0; x<7;x++)
cout<<setw(3)<<data[x];
cout<<endl;
binarysearch();
_getche();
return EXIT_SUCCESS;
}
Langganan:
Postingan (Atom)