Selasa, 26 Januari 2016
Rabu, 07 Mei 2014
MAKALAH BUBBLE SORT
06.06
No comments
MAKALAH BUBBLE SORT
Bubble Sort salah satu algoritma untuk sorting data,
atau kata lainnya mengurutkan data dari yang terbesar ke yang terkecil atau
sebaliknya (Ascending atau Descending).
Bubble sort (metode gelembung) adalah metode/algoritma
pengurutan dengan dengan cara melakukan penukaran data dengan tepat
disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi
tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah
terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan
lambat menggelembung ke posisinya yang tepat.
Bubble sort adalah
salah satu metode sorting atau mengurutkan dari data terkecil ke data terbesar
ataupun dengan cara membandingkan elemen kesatu dengan elemen yang
selanjutnya.
Kelebihan Bubble Sort
- Metode Buble Sort merupakan metode yang paling simpel
- Metode Buble Sort mudah dipahami algoritmanya
Kelemahan Bubble Sort
Metode ‘Bubble Sort’ merupakan metode pertama yang paling
banyak dipelajari oleh programmer. Karena lebih sederhana. Akan tetapi ‘Bubble
Sort’ sendiri memiliki kelemahan/kekurangan. Seperti :
- ‘Bubble Sort’ tidak efisien dan menyita lebih banyak waktu prosessor dibandingkan dengan metode sorting yang lain.
- Penggunaan ‘Bubble Sort’ masih dapat terlihat baik jika jumlah data/elemen yang di inputkan tidak lebih dari 30 atau kurang dari 30 elemen.
Konsep pada metode bubble sort ini adalah
![]() |
Pada kesempatan kali ini kita akan membuat contoh program bubble sort pada bahasa c++ yaitu mengurutka nilai terbesar ke nilai terkecil.
keterangan:
- baris 5 -7 = adalah pendeklarasian variabel dan array yang akan digunakan
dalam program
- baris 10-13 = Proses inputan yang disimpan dalam array yang dilakukan
dalam perulangan
- baris 14-26 = Proses pengurutan antara elemen satu dengan yang lain dan
apabila elemen satu lebih kecil daripada elemen berikutnya
(mengurtkan besar ke kecil) maka proses pertukaran akan
terjadi pada pada baris 23- 25.
- baris 29-32 = Setelah pengurutan berhasil maka nilai akan dicetak/ ditampilkan pada baris ini.
- baris 5 -7 = adalah pendeklarasian variabel dan array yang akan digunakan
dalam program
- baris 10-13 = Proses inputan yang disimpan dalam array yang dilakukan
dalam perulangan
- baris 14-26 = Proses pengurutan antara elemen satu dengan yang lain dan
apabila elemen satu lebih kecil daripada elemen berikutnya
(mengurtkan besar ke kecil) maka proses pertukaran akan
terjadi pada pada baris 23- 25.
- baris 29-32 = Setelah pengurutan berhasil maka nilai akan dicetak/ ditampilkan pada baris ini.
Maka apabila di compile maka hasilnya akan menjadi :
![]() |
Contoh Program Sorting Menggunakan Bubble Sort pada C++
Contoh
Program Sorting Menggunakan Bubble Sort pada C++ , berikut Source Codenya :
#include <iostream>
#include <conio.h>
int data[10],data2[10];
int n;
void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void Input()
{
cout<<"Masukkan jumlah data = ";cin>>n;
cout<<"--------------------------------------"<<endl;
for(int i=0;i<n;i++)
{
cout<<"Masukkan data ke-"<<(i+1)<<" = ";cin>>data[i];
data2[i] = data[i];
}
cout<<endl;
}
void Tampil()
{
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}void bubble_sort()
{
for(int i=1;i<n;i++)
{
for(int j=n-1;j>=i;j--)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
Tampil();
}
cout<<endl;
}
main()
{
cout<<"*-------------------------------------*"<<endl;
cout<<"* Selamat datang di aplikasi *"<<endl;
cout<<"* Bubble Sort *"<<endl;
cout<<"*-------------------------------------*"<<endl;
Input();
cout<<"Proses Bubble Sort,,,,,,,"<<endl;
cout<<"-------------------------------------"<<endl;
Tampil();
bubble_sort();
cout<<"-------------------------------------"<<endl;
cout<<" TERIMA KASIH "<<endl;
cout<<"-------------------------------------"<<endl;
getch();}
#include <iostream>
#include <conio.h>
int data[10],data2[10];
int n;
void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void Input()
{
cout<<"Masukkan jumlah data = ";cin>>n;
cout<<"--------------------------------------"<<endl;
for(int i=0;i<n;i++)
{
cout<<"Masukkan data ke-"<<(i+1)<<" = ";cin>>data[i];
data2[i] = data[i];
}
cout<<endl;
}
void Tampil()
{
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}void bubble_sort()
{
for(int i=1;i<n;i++)
{
for(int j=n-1;j>=i;j--)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
Tampil();
}
cout<<endl;
}
main()
{
cout<<"*-------------------------------------*"<<endl;
cout<<"* Selamat datang di aplikasi *"<<endl;
cout<<"* Bubble Sort *"<<endl;
cout<<"*-------------------------------------*"<<endl;
Input();
cout<<"Proses Bubble Sort,,,,,,,"<<endl;
cout<<"-------------------------------------"<<endl;
Tampil();
bubble_sort();
cout<<"-------------------------------------"<<endl;
cout<<" TERIMA KASIH "<<endl;
cout<<"-------------------------------------"<<endl;
getch();}
Tampilan
Hasil :
MAKALAH
STRUKTUR DATA
Tentang
SORTING : BUBBLE SORT
Dosen Pembingbing
Ria Novita Masyita s.kom
![]() |
Di Sususn Oleh:
Moh Suid
2012.02.01.0.0041
TIB
Jurusan Teknik Informatika
Fakultas Tehnik
Universitas Islam Madura
2014-2015
06.04
No comments
MAKALAH BUBBLE SORT
Bubble Sort salah satu algoritma untuk sorting data,
atau kata lainnya mengurutkan data dari yang terbesar ke yang terkecil atau
sebaliknya (Ascending atau Descending).
Bubble sort (metode gelembung) adalah metode/algoritma
pengurutan dengan dengan cara melakukan penukaran data dengan tepat
disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi
tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah
terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan
lambat menggelembung ke posisinya yang tepat.
Bubble sort adalah
salah satu metode sorting atau mengurutkan dari data terkecil ke data terbesar
ataupun dengan cara membandingkan elemen kesatu dengan elemen yang
selanjutnya.
Kelebihan Bubble Sort
- Metode Buble Sort merupakan metode yang paling simpel
- Metode Buble Sort mudah dipahami algoritmanya
Kelemahan Bubble Sort
Metode ‘Bubble Sort’ merupakan metode pertama yang paling
banyak dipelajari oleh programmer. Karena lebih sederhana. Akan tetapi ‘Bubble
Sort’ sendiri memiliki kelemahan/kekurangan. Seperti :
- ‘Bubble Sort’ tidak efisien dan menyita lebih banyak waktu prosessor dibandingkan dengan metode sorting yang lain.
- Penggunaan ‘Bubble Sort’ masih dapat terlihat baik jika jumlah data/elemen yang di inputkan tidak lebih dari 30 atau kurang dari 30 elemen.
Konsep pada metode bubble sort ini adalah
![]() |
Pada kesempatan kali ini kita akan membuat contoh program bubble sort pada bahasa c++ yaitu mengurutka nilai terbesar ke nilai terkecil.
keterangan:
- baris 5 -7 = adalah pendeklarasian variabel dan array yang akan digunakan
dalam program
- baris 10-13 = Proses inputan yang disimpan dalam array yang dilakukan
dalam perulangan
- baris 14-26 = Proses pengurutan antara elemen satu dengan yang lain dan
apabila elemen satu lebih kecil daripada elemen berikutnya
(mengurtkan besar ke kecil) maka proses pertukaran akan
terjadi pada pada baris 23- 25.
- baris 29-32 = Setelah pengurutan berhasil maka nilai akan dicetak/ ditampilkan pada baris ini.
- baris 5 -7 = adalah pendeklarasian variabel dan array yang akan digunakan
dalam program
- baris 10-13 = Proses inputan yang disimpan dalam array yang dilakukan
dalam perulangan
- baris 14-26 = Proses pengurutan antara elemen satu dengan yang lain dan
apabila elemen satu lebih kecil daripada elemen berikutnya
(mengurtkan besar ke kecil) maka proses pertukaran akan
terjadi pada pada baris 23- 25.
- baris 29-32 = Setelah pengurutan berhasil maka nilai akan dicetak/ ditampilkan pada baris ini.
Maka apabila di compile maka hasilnya akan menjadi :
![]() |
Contoh Program Sorting Menggunakan Bubble Sort pada C++
Contoh
Program Sorting Menggunakan Bubble Sort pada C++ , berikut Source Codenya :
#include <iostream>
#include <conio.h>
int data[10],data2[10];
int n;
void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void Input()
{
cout<<"Masukkan jumlah data = ";cin>>n;
cout<<"--------------------------------------"<<endl;
for(int i=0;i<n;i++)
{
cout<<"Masukkan data ke-"<<(i+1)<<" = ";cin>>data[i];
data2[i] = data[i];
}
cout<<endl;
}
void Tampil()
{
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}void bubble_sort()
{
for(int i=1;i<n;i++)
{
for(int j=n-1;j>=i;j--)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
Tampil();
}
cout<<endl;
}
main()
{
cout<<"*-------------------------------------*"<<endl;
cout<<"* Selamat datang di aplikasi *"<<endl;
cout<<"* Bubble Sort *"<<endl;
cout<<"*-------------------------------------*"<<endl;
Input();
cout<<"Proses Bubble Sort,,,,,,,"<<endl;
cout<<"-------------------------------------"<<endl;
Tampil();
bubble_sort();
cout<<"-------------------------------------"<<endl;
cout<<" TERIMA KASIH "<<endl;
cout<<"-------------------------------------"<<endl;
getch();}
#include <iostream>
#include <conio.h>
int data[10],data2[10];
int n;
void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void Input()
{
cout<<"Masukkan jumlah data = ";cin>>n;
cout<<"--------------------------------------"<<endl;
for(int i=0;i<n;i++)
{
cout<<"Masukkan data ke-"<<(i+1)<<" = ";cin>>data[i];
data2[i] = data[i];
}
cout<<endl;
}
void Tampil()
{
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}void bubble_sort()
{
for(int i=1;i<n;i++)
{
for(int j=n-1;j>=i;j--)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
Tampil();
}
cout<<endl;
}
main()
{
cout<<"*-------------------------------------*"<<endl;
cout<<"* Selamat datang di aplikasi *"<<endl;
cout<<"* Bubble Sort *"<<endl;
cout<<"*-------------------------------------*"<<endl;
Input();
cout<<"Proses Bubble Sort,,,,,,,"<<endl;
cout<<"-------------------------------------"<<endl;
Tampil();
bubble_sort();
cout<<"-------------------------------------"<<endl;
cout<<" TERIMA KASIH "<<endl;
cout<<"-------------------------------------"<<endl;
getch();}
Tampilan
Hasil :
MAKALAH
STRUKTUR DATA
Tentang
SORTING : BUBBLE SORT
Dosen Pembingbing
Ria Novita Masyita s.kom
![]() |
Di Sususn Oleh:
Moh Suid
2012.02.01.0.0041
TIB
Jurusan Teknik Informatika
Fakultas Tehnik
Universitas Islam Madura
2014-2015
Rabu, 09 April 2014
Data Base
23.23
No comments
Database atau basis data
adalah kumpulan data yang disimpan secara sistematis di dalam komputer
dan dapat diolah atau dimanipulasi menggunakan perangkat lunak (program
aplikasi) untuk menghasilkan informasi. Pendefinisian basis data
meliputi spesifikasi berupa tipe data, struktur, dan juga
batasan-batasan data yang akan disimpan. Basis data merupakan aspek yang
sangat penting dalam sistem informasi dimana basis data merupakan
gudang penyimpanan data yang akan diolah lebih lanjut. Basis data
menjadi penting karena dapat menghidari duplikasi data, hubungan antar
data yang tidak jelas, organisasi data, dan juga update yang rumit.
Proses memasukkan dan mengambil data ke dan dari media penyimpanan data memerlukan perangkat lunak yang disebut dengan sistem manajemen basis data (database management system | DBMS). DBMS merupakan sistem perangkat lunak yang memungkinkan user untuk memelihara, mengontrol, dan mengakses data secara praktis dan efisien. Dengan kata lain semua akses ke basis data akan ditangani oleh DBMS. Ada beberapa fungsi yang harus ditangani DBMS yaitu mengolah pendefinisian data, dapat menangani permintaan pemakai untuk mengakses data, memeriksa sekuriti dan integriti data yang didefinisikan oleh DBA (Database Administrator), menangani kegagalan dalam pengaksesan data yang disebabkan oleh kerusakan sistem maupun disk, dan menangani unjuk kerja semua fungsi secara efisien.
Tujuan utama dari DBMS adalah untuk memberikan tinjauan abstrak data kepada user (pengguna). Jadi sistem menyembunyikan informasi tentang bagaimana data disimpan, dipelihara, dan tetap dapat diambil (akses) secara efisien. Pertimbangan efisien di sini adalah bagaimana merancang struktur data yang kompleks tetapi masih tetap bisa digunakan oleh pengguna awam tanpa mengetahui kompleksitas strukturnya.
Basis data relasional. Basis data ini mempunyai struktur yang lebih logis terkait cara penyimpanan. Kata "relasional" berasal dari kenyataan bahwa tabel-tabel yang berada di basis data dapat dihubungkan satu dengan lainnya. Basis data relasional menggunakan sekumpulan tabel dua dimensi yang masing-masing tabel tersusun atas baris (tupel) dan kolom (atribut). Untuk membuat hubungan antara dua atau lebih tabel, digunakan key (atribut kunci) yaitu primary key di salah satu tabel dan foreign key di tabel yang lain. Saat ini, basis data relasional menjadi pilihan karena keunggulannya. Beberapa kelemahan yang mungkin dirasakan untuk basis data jenis ini adalah implementasi yang lebih sulit untuk data dalam jumlah besar dengan tingkat kompleksitasnya yang tinggi dan proses pencarian informasi yang lebih lambat karena perlu menghubungkan tabel-tabel terlebih dahulu apabila datanya tersebar di beberapa tabel.
Proses memasukkan dan mengambil data ke dan dari media penyimpanan data memerlukan perangkat lunak yang disebut dengan sistem manajemen basis data (database management system | DBMS). DBMS merupakan sistem perangkat lunak yang memungkinkan user untuk memelihara, mengontrol, dan mengakses data secara praktis dan efisien. Dengan kata lain semua akses ke basis data akan ditangani oleh DBMS. Ada beberapa fungsi yang harus ditangani DBMS yaitu mengolah pendefinisian data, dapat menangani permintaan pemakai untuk mengakses data, memeriksa sekuriti dan integriti data yang didefinisikan oleh DBA (Database Administrator), menangani kegagalan dalam pengaksesan data yang disebabkan oleh kerusakan sistem maupun disk, dan menangani unjuk kerja semua fungsi secara efisien.
Tujuan utama dari DBMS adalah untuk memberikan tinjauan abstrak data kepada user (pengguna). Jadi sistem menyembunyikan informasi tentang bagaimana data disimpan, dipelihara, dan tetap dapat diambil (akses) secara efisien. Pertimbangan efisien di sini adalah bagaimana merancang struktur data yang kompleks tetapi masih tetap bisa digunakan oleh pengguna awam tanpa mengetahui kompleksitas strukturnya.
Dilihat dari jenisnya, basis data dibagi menjadi dua yaitu:
Basis data flat-file. Basis data flat-file ideal untuk data berukuran kecil dan dapat dirubah dengan mudah. Pada dasarnya, mereka tersusun dari sekumpulan string dalam satu atau lebih file yang dapat diurai untuk mendapatkan informasi yang disimpan. Basis data flat-file baik digunakan untuk menyimpan daftar atau data yang sederhana dan dalam jumlah kecil. Basis data flat-file akan menjadi sangat rumit apabila digunakan untuk menyimpan data dengan struktur kompleks walaupun dimungkinkan pula untuk menyimpan data semacam itu. Salah satu masalah menggunakan basis data jenis ini adalah rentan pada korupsi data karena tidak adanya penguncian yang melekat ketika data digunakan atau dimodifikasi.Basis data relasional. Basis data ini mempunyai struktur yang lebih logis terkait cara penyimpanan. Kata "relasional" berasal dari kenyataan bahwa tabel-tabel yang berada di basis data dapat dihubungkan satu dengan lainnya. Basis data relasional menggunakan sekumpulan tabel dua dimensi yang masing-masing tabel tersusun atas baris (tupel) dan kolom (atribut). Untuk membuat hubungan antara dua atau lebih tabel, digunakan key (atribut kunci) yaitu primary key di salah satu tabel dan foreign key di tabel yang lain. Saat ini, basis data relasional menjadi pilihan karena keunggulannya. Beberapa kelemahan yang mungkin dirasakan untuk basis data jenis ini adalah implementasi yang lebih sulit untuk data dalam jumlah besar dengan tingkat kompleksitasnya yang tinggi dan proses pencarian informasi yang lebih lambat karena perlu menghubungkan tabel-tabel terlebih dahulu apabila datanya tersebar di beberapa tabel.
Minggu, 06 April 2014
Metode sorting danimplekasi dalam bahasa C
20.14
No comments
5 metode sorting dan implementasinya dalam
bahasa C
Sorting alias pengurutan, merupakan
suatu hal yang sangat dibutuhkan dalam pemrograman tingkat tinggi.
Ada 5 metode sorting, yaitu :
- Buble sort merupakan metode pengurutan yang paliong lambar daripada metode pengurutan lainnya. karena, metode ini, melakukan pengurutan dengan cara membandingkan 1 elemen dengn yang lain selama 2 kali looping. Namun, metode ini merupakan metode yang paling mudah digunakan daripada metode yang lainnya
- Selection sort yaitu pengurutan dengan cara menyeleksi elemen – elemen ada dalam suatu array. Terdapat 2 kali for loop dalam metode ini, loop yang pertama melakukan seleksi terhadap elemen awal. Loop kedua melakukan seleksi terhadap elemen kedua. Lalu membandingkan antara kedua loop tersebut
- Insertion Sort, disebut- sebut sebagai metode pertengahan . Artinya, metode ini memiliki kecepatan rata- rata antara metode primitif(buble dan selection) dan modern(merge dan quick). metode ini, didasarkan pada sebuah key yang diambil pada elemen ke-2 pada sebuah array, lalu menyisipkan elemen tersebut jika branching terpenuhi
- Merge Sort merupakan algoritma sorting yang sudah menerapkan teknik rekursif. Metode ini bisa dibilang cukup sulit dan membutuhkan pemikiran yang agak berat. Namun, kecepatan yang dihasilkan jauh melebihi metode primitif
- Quick Sort . Inilah metode sorting yang tercepat diantara metode 5 metode sorting yang paling umum digunakan. Selain menerapkan teknik rekursif devide and conquer, Teknik ini juga didasarkan pada pivot yang menjadi kunci perbandingan.
Berikut source code-nya :
Buble Sort
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
//buble
sort
#include
<stdio.h>
int
<span id="kb09tcin4_7"
class="kb09tcin4">total</span>,data[10];
void
input(){
printf("input
a value = ");scanf("%d",&total);
for(int
a=0;a<total;a++){
printf("masukkan
nilai pada <span id="kb09tcin4_6"
class="kb09tcin4">INDEX</span> ke %d =
",a+1);scanf("%d",&data[a]);
}
}
void
sort(){
int
temp;
for(int
a=0;a<total-1;a++){
for(int
b=0;b<total-1;b++){
if(data[b]>data[b+1]){
temp=data[b+1];
data[b+1]=data[b];
data[b]=temp;
}
}
}
}
void
view(){
for(int
a=0;a<total;a++){
printf("%d
",data[a]);
}
printf("\n");
}
int
main(){
input();printf("sebelum
di- sorting\n");
view();
sort();
printf("sesudah
di- sorting\n");
view();
}
|
selection sort
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
//selection
sort
#include
<stdio.h>
int
total,data[10];
void
input(){
printf("input
a value = ");scanf("%d",&total);
for(int
a=0;a<total;a++){
printf("masukkan
nilai pada INDEX ke %d = ",a+1);scanf("%d",&data[a]);
}
}
void
sort(){
int
temp;
for(int
a=0;a<total-1;a++){
for(int
b=a+1;b<total;b++){
if(data[a]>data[b]){
temp=data[b];
data[b]=data[a];
data[a]=temp;
}
}
}
}
void
view(){
for(int
a=0;a<total;a++){
printf("%d
",data[a]);
}
printf("\n");
}
int
main(){
input();
printf("sebelum
di- sorting\n");
view();
sort();
printf("sesudah
di- sorting\n");
view();
}
|
Insertion Sort
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
//Insertion
Sort
#include
<stdio.h>
int
total,data[10];
void
input(){
printf("input
a value = ");scanf("%d",&total);
for(int
a=0;a<total;a++){
printf("masukkan
nilai pada INDEX ke %d = ",a+1);scanf("%d",&data[a]);
}
}
void
sort(){
int
temp,key,i;
for(int
a=0;a<total;a++){
key=data[a];
i=a-1;
while(i>=0 && data[i]>key){
data[i+1]=data[i];
i=i-1;
data[i+1]=key;
}
}
}
void
view(){
for(int
a=0;a<total;a++){
printf("%d
",data[a]);
}
printf("\n");
}
int
main(){
input();
printf("sebelum
di- sorting\n");
view();
sort();
printf("sesudah
di- sorting\n");
view();
}
|
Merge Sort menggunakan teknik
rekursif
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
//merge
sort
#include
<stdio.h>
int
total,data[10],salin[10];
void
input(){
printf("input
a value = ");scanf("%d",&total);
for(int
a=0;a<total;a++){
printf("masukkan
nilai pada INDEX ke %d = ",a+1);scanf("%d",&data[a]);
}
}
void
merge(int salin[],int lowptr,int highptr,int upperbound){
int
x=0;
int
lowerbound=lowptr;
int
mid=highptr-1;
int
n=upperbound-lowerbound+1;
while(lowptr<=mid
&& highptr<=upperbound){
if(data[lowptr]<data[highptr]){
salin[x++]=data[lowptr++];
}
else{
salin[x++]=data[highptr++];
}
while(lowptr<=mid){
salin[x++]=data[lowptr++];
}
while(highptr<=upperbound){
salin[x++]=data[highptr++];
}
for(int
a=0;a<n;a++){
data[lowerbound+a]=salin[a];
}
}
}
void
devide(int salin[],int kiri,int kanan){
if(kiri<kanan){
int
mid=(kiri+kanan)/2;
devide(salin,kiri,mid);
devide(salin,mid+1,kanan);
merge(salin,kiri,mid+1,kanan);
}
}
void
sort(){
devide(salin,0,total-1);
}
void
view(){
for(int
a=0;a<total;a++){
printf("%d
",data[a]);
}
printf("\n");
}
int
main(){
input();
printf("sebelum
di- sorting\n");
view();
sort();
printf("sesudah
di- sorting\n");
view();
}
|
Quick sort menggunakan teknik
rekursif
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
//
quickSort.c
#include
<stdio.h>
void
quickSort( int[], int, int);
int
partition( int[], int, int);
int
total;
void
main()
{
int
total;
int
a[1000];
int
i;
printf("masukkan
jumlah data total = ");scanf("%d",&total);
for(i=0;i<total;i++){
printf("masukkan
data index ke %d = ",i+1);scanf("%d",&a[i]);
}
printf("\n\nsebelum
Di- sorting: ");
for(i
= 0; i < total; ++i)
printf("
%d ", a[i]);
quickSort(
a, 0, total-1);
printf("\n\nsesudah
Di- sorting: ");
for(i
= 0; i < total; ++i){
printf("
%d ", a[i]);}
printf("\n");
}
void
quickSort( int a[], int l, int r)
{
int
j;
if(
l < r )
{
//
divide and conquer
j
= partition( a, l, r);
quickSort(
a, l, j-1);
quickSort(
a, j+1, r);
}
}
int
partition( int a[], int l, int r) {
int
<span id="kb09tcin4_8"
class="kb09tcin4">pivot</span>,
i, j, t;
pivot
= a[l];
i
= l; j = r+1;
while(
1)
{
do
++i; while( a[i] <= pivot && i <= r );
do
--j; while( a[j] > pivot );
if(
i >= j ) break;
t
= a[i]; a[i] = a[j]; a[j] = t;
}
t
= a[l]; a[l] = a[j]; a[j] = t;
return
j;
}
|
Langganan:
Komentar (Atom)













