Minggu, 02 Januari 2011

Sruktur data sorting & searching dengan bahasa c

//Sorting dalam bahasa c buble sort, insertion sort n selection sort, habis itu cari nilai terbesar, nilai terkecil, nilai rata2, jumlah total nilai, jumlah nilai yang dibawah rata2.//
#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;
}

1 komentar:

  1. Artikelnyya bermanfaat kak, ini saya juga punya artikel tentang Insertion Sort, semoga dapat saling melengkapi

    Insertion Sort dalam Bahasa C (Materi + Koding)

    BalasHapus