Search Sekuensial
Search Sekuensial
Search Sekuensial adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal). Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal).
contoh dengan array satu dimensi seperti dibawah ini :
contoh program C++
#include
#include
void main()
{
clrscr();
int data[8]={8,10,6,-2,11,7,1,100};
int cari;
int flag=0;
cout<<"masukan data yang ingin di cari : "; cin>>cari;
for (int i=0;i<8;i++)
{
if (data[i]==cari)
flag=1;
}
if (flag==1)
cout<<"data ada!\n"<
else
cout<<"data tidak ada!\n"<
getch();
}
12.23 | | 0 Comments
Binary Search
Binary Search
Binary search adalah algoritma pencarian untuk data yang terurut. Pencarian
dilakukan dengan cara menebak apakah data yang dicari berada ditengah-tengah data,
kemudian membandingkan data yang dicari dengan data yang ada ditengah. Bila data
yang ditengah sama dengan data yang dicari, berarti data ditemukan. Namun, bila data
yang ditengah lebih besar dari data yang dicari, maka dapat dipastikan bahwa data
yang dicari kemungkinan berada disebelah kiri dari data tengah dan data disebelah
kanan data tengah dapat diabai. Upper bound dari bagian data kiri yang baru adalah
indeks dari data tengah itu sendiri. Sebaliknya, bila data yang ditengah lebih kecil dari
data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan besar
berada disebelah kanan dari data tengah. Lower bound dari data disebelah kanan dari
data tengah adalah indeks dari data tengah itu sendiri ditambah 1. Demikian
seterusnya.
11.36 | | 0 Comments
Straigh Selection
Straigh Selection
Cara dari metode Straigh Selection dapat lo lihat dibawa :
1.Pada tahap pertama, data terkecil harus di cari dari seluruh data dan kemudian di tempatkan pada posisi urut pertama.Cara dari metode Straigh Selection dapat lo lihat dibawa :
2.langkah ke dua adalah mencari data terkecil kedua dari seluruh data kecuali yang pertama dan kemudian di tempatkan pada posisi urut ke dua.
3.Langkah ke tiga adalah mencari data terkecil ke tiga dari seluruh data pertama dan kedua, dan kemudian ditempatkan pada posisi urutan ke tiga. Proses tersebut di ulang terus menerus sehingga semua data akan menempati posisi secara tepat sehingga
Pengurutan data secara urut naik dengan metode seleksi langsung
Data : 12 29 17 56 11 23
angkah pertama :
bandingkan data pertama dengan kedua, jika data pertama lebih besar maka tukarkan, jika sama biarin tetap disna, terus lanjut bandingkan dengan data ke tiga jika data pertama lebih besar langsung tukar begitu seterusnya sampai nemu dah data terkecil pada urutan pertama
data sebelum di urut:
12 29 17 56 11 23
langkah pengurutan pertama :
11 12 29 17 56 23
pada langkah di atas data pertama (12) di bandingkan dengan seluruh data kemudian di tukar dengan data ke lima (11)
lanjut ke langkah kedua
sekarang kita bandingkan data yang kedua karena data yang pertama kan udah kita dapetin jadi gak usah di bandingin lagi. Sekarang kita bandingkan data ke dua dengan data ketiga klo lebih besar di tukar kalau lebih kecil biarin terus bandingin dengan data ke empat, ke lima dan seterusnya ampe abis, bis itu dapet deh data terkecil kedua yang menempati urutan ke dua.
data sebelum di urut: 12 29 17 56 11 23
langkah pengurutan pertama :
11 12 29 17 56 23
langkah pengurutan kedua :
11 12 17 29 56 23
Karena data ke dua (12) udah data terkecil ke dua jadi gak usah di geser lagi terus liat data ke 3 (29) terus bandingkan dengan semua data dan tukarkan dengan data ke empat (17), karena data ke tiga lebih besar daripada data ke empat.
pada data yang di bawah pengurutan straigh selection secara naik, dari angka kecil ke besar, klo pengen pengurutan secara turun, sam tinggal di bali aja . Tetep di bandingn dulu data pertama dengan kedua, jika data pertama lebih kecil dari data ke dua, di tuker klo sama biarin, terus bandingin dengan data ke tiga
contoh :
data sebelum di urut: 12 29 17 56 11 23
langkah pengurutan pertama :
11 12 29 17 56 23
langkah pengurutan kedua :
11 12 17 29 56 23
langkah pengurutan ketiga :
11 12 17 29 23 56
biar gak capek liat hasil dibawah ini :
dan hasilnya akan seperti dibawah ini :
10.43 | | 0 Comments
sorting
Sorting
pengertian dari sorting
Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan
proses tersebut terimplementasi dalam bermacam aplikasi. Kita ambil contoh pada
aplikasi perbankan. Aplikasi tersebut mampu menampilkan daftar account yang aktif.
Hampir seluruh pengguna pada sistem akan memilih tampilan daftar berurutan
secara ascending demi kenyamanan dalam penelusuran data.
10.25 | | 0 Comments
Bublesort
Buble sort
Buble sort adalah algoritma yangt Melakukan pembandingan antara ’data[n] dengan data[n+1]’ atau antara ’data[n] dengan data[n-1]’ kemudian jika lebih kecil/besar dilakukan pertukaran. Pada setiap iterasi dapat terjadi beberapa kali pertukaran atau tidak sama sekali. Jumlah iterasi ditentukan oleh banyaknya data atau ‘N’. Iterasi=N-1.”
Algoritma
#include
#include
void main()
{
int data[100],a,max;
cout<<" Masukkan Jumlah Data = ";cin>>max;
for (int x=1;x<=max;x++)
{
cout<<" Data Ke "<
}
{
cout<
cout<
cout<cout<
for(int i=1;i<=max-1;i++)
for(int j=1;j<=max-1;j++)
if ( data[j] > data[j+1])
{
a=data[j];
data[j]=data[j+1];
data[j+1]=a;
}
cout<
cout<
cout<cout<
}
10.18 | | 0 Comments
Quicksort
Quicksort
Quick sort merupakan divide and conquer algorithm. Algoritma ini mengambil salah satu elemen secara acak (biasanya dari tengah) lalu menyimpan semua elemen yang lebih kecil di sebelah kirinya dan semua elemen yang lebih besar di sebelah kanannya. Hal ini dilakukan secara rekursif terhadap elemen di sebelah kiri dan kanannya sampai semua elemen sudah terurut. Algoritma ini termasuk algoritma yang cukup baik dan cepat. Hal penting dalam algoritma ini adalah pemilihan nilai tengah yang baik sehingga tidak memperlambat proses sorting secara keseluruhan.
Quicksort hanya mengikuti langkah – langkah sebagai berikut :
1. Divide
Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r]
dimana setiap elemen A[p…q-1] adalah kurang dari atau sama dengan A[q]
dan setiap elemen pada A[q+1…r] adalah lebih besar atau sama dengan
elemen pada A[q]. A[q] disebut sebagai elemen pivot. Perhitungan pada
elemen q merupakan salah satu bagian dari prosedur pemisahan.
2. Conquer
Mengurutkan elemen pada sub-rangkaian secara rekursif
Pada algoritma quicksort, langkah ”kombinasi” tidak di lakukan karena telah terjadi
pengurutan elemen – elemen pada sub-array
Algoritma
void quickSort(Object array[], int leftIdx, int rightIdx) {
int pivotIdx;
/* Kondisi Terminasi */
if (rightIdx > leftIdx) {
pivotIdx = partition(array, leftIdx, rightIdx);
quickSort(array, leftIdx, pivotIdx-1);
quickSort(array, pivotIdx+1, rightIdx);
10.01 | | 0 Comments
selection sort
Selection Sort
Mari kita kembali menelusuri bagaimana algoritma ini berfungsi kita asumsikan
terhadap satu paketkartu. Asumsikan bahwa kartu tersebut
akan diurutkan secara ascending. Pada
awalnya, kartu tersebut akan disusun secara linier pada sebuah meja dari kiri ke
kanan, dan dari atas ke bawah. Pilih nilai kartu yang paling rendah, kemudian
tukarkan posisi kartu ini dengan kartu yang terletak pada pojok kiri atas meja. Lalu
cari kartu dengan nilai paling rendah diantara sisa kartu yang tersedia. Tukarkan
kartu yang baru saja terpilih dengan kartu pada posisi kedua. Ulangi langkah –
langkah tersebut hingga posisi kedua sebelum posisi terakhir dibandingkan dan
dapat digeser dengan kartu yang bernilai lebih rendah.
Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling
rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai
dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.
Algoritma
void selectionSort(Object array[], int startIdx, int endIdx) {
int min;
for (int i = startIdx; i < min =" i;" j =" i">0) {
min = j;
}
}
swap(array[min], array[i]);
}
}
Sebuah Contoh
Data-----------1 pass----------2 pass--------3 pass---------4 pass
Maricar--------Hannah--------Hannah-------Hannah-------Hannah
Vanessa--------Vanessa-------Margaux------Margaux------Margaux
Margaux-------Margaux------Vanessa-------Maricar-------Maricar
Hanna---------Maricar--------Maricar-------Vanessa-------Rowena
Rowena--------Rowena-------Rowena-------Rowena--------Vanessa
09.04 | | 0 Comments
Langganan:
Postingan (Atom)