<< UPDATE >>
 

Bubble Sort, Selection Sort, dan Insertion Sort pada C Programming

22 Maret 2010

Kebetulan aja ada temen request minta dibikinin program dengan bahasa C dengan permintaan soal sebagai berikut :
array 45 15 7 16 30 5 80 20 60 trus disuruh urutin pake buble sort, insertion sort n selection sort, habis itu cari nilai terbesar, nilai terkecil, nilai rata2, jumlah total nilai, jumlah nilai yang dibawah rata2. Begitulah soalnya, sekarang gimana jawabnya ya??. Sebenernya soal ini ga begitu susah-susah banget, cuma di pahami aja logika pencariaanya, kalo sudah syarat-syarat selanjtunya akan terasa mudah. nah berikut source yang akan menghasilkan hasil yang sama dengan apa yang diminta soal.


#include<stdio.h>

void bbsort(int a[], int ukuran);
void selectsort(int a[], int ukuran);
void isort(int arr[], int n);
int fm(int arr[], int b, int n);


//Fungsi Bubble Sort
void bbsort(int a[], int ukuran) {
int tukar = 1;
int tampung = 0;
int i = 0;
int j = 0;

ukuran -= 1;

for(i = 0; i < ukuran && tukar; i++) {
tukar = 0;
for(j = 0; j < ukuran - i; j++)
if(a[j] > a[j+1]) {
tukar = 1;
tampung = a[j];
a[j] = a[j + 1];
a[j + 1] = tampung;
}
}
}

//Fungsi Insertion Sort
int fm(int arr[], int b, int n) {
int f = b;
int c;

for(c = b + 1; c < n; c++)
if(arr[c] < arr[f])
f = c;

return f;
}

void isort(int arr[], int n) {
int s, w;
int sm;

for(s = 0; s < n - 1; s++) {
w = fm(arr, s, n);
sm = arr[w];
arr[w] = arr[s];
arr[s] = sm;
}
}

//Fungsi Selection Sort
void selectsort(int a[], int ukuran) {
int i = 0;
int j = 0;
int besar = 0;
int index = 0;

for(i = ukuran - 1; i > 0; i--) {
besar = a[0];
index = 0;
for(j = 1; j <= i; j++)
if(a[j] > besar) {
besar = a[j];
index = j;
}
a[index] = a[i];
a[i] = besar;
}
}

#define maxarr 9
//Program Utama
int main(void) {
int arr[maxarr] = {45, 15, 7, 16, 30, 5, 80, 20, 60};
int i = 0;
int pilih;
int salah=1, jum=0, itung=0;
float rata;

printf("Sebelum Diurutkan :\n");
for(i = 0; i < maxarr; i++) {
jum = jum + arr[i] ;
printf("%d ", arr[i]);
}
rata=jum/maxarr;
printf("\n");

do {
printf ("\nPilih Metode Pengurutan : \n 1. Bubble Sort"
"\n 2. Insertion Sort\n 3. Selection Sort \n");
printf("Tentukan Pilihan anda : "); scanf("%d",&pilih);
switch(pilih){
case 1 :{
printf("\n 1. Bubble Sort");
bbsort(arr,maxarr);
salah=1;
}
break;
case 2: {
printf("\n 2. Insertion Sort");
isort(arr,maxarr);
salah=1;
}
break;
case 3: {
printf("\n 3. Selection Sort");
selectsort(arr,maxarr);
salah=1;
}
break;
default: {
printf("Anda salah dalam menentukan pilihan \n");
salah=0;
}
}
} while (salah!=1);

printf("Setelah Diurutkan: \n");
for(i = 0; i < maxarr; i++) {
printf("%d ", arr[i]);
if (arr[i]<rata) itung=itung+1;
}
printf("\n");
printf("Nilai Terkecil adalah %d\n",arr[0]);
printf("Nilai Terbesar adalah %d\n",arr[maxarr-1]);
printf("Nilai total seluruh array adalah %d\n",jum);
printf("Rata-rata dari seluruh adalah %f\n",rata);
printf("Jumlah Nilai array yang dibawah rata-rata sebanyak %d angka",itung);
printf("\n");

return 0;
}

Nah Silahkan dicoba..., kalo seandainnya ada salah-salah silahkan tinggalkan komentar, kalo bener ya tetep komen lho...

Bagikan

Udah Baca ini??

6 komentar:

diexXx mengatakan...

mas, kalo mau nyari pengurutan karakter(a-z) dengan metode bubble sort gmna seh cara nya??/

kang andi mengatakan...

wah kalo di java ane tau, tapi kalo di c aq kurang tau...

day mengatakan...

aku ada tugas kayak gt tapi sorting nya banyak mpe 7 pusing aku....kalao shell,heap,quick,merge sorting algoritma C++ nya gimana ya?????hehe

kang andi mengatakan...

c ama c++ kan hampir sama..., cuma beda standar outputnya aja... :D

Anonim mengatakan...

mantep, kang...

efry mengatakan...

q lum nyoba, baru tk ambil aja, moga gk da kesalahan n lancar "from star to ending"

Posting Komentar

 
 
 
 
Copyright © Kang Andi