P. 1
APAKAH ARTI DARI SORTING Dan Pengertian Dari Metode2 Tsb

APAKAH ARTI DARI SORTING Dan Pengertian Dari Metode2 Tsb

|Views: 176|Likes:
Published by Denuj jou

More info:

Published by: Denuj jou on Dec 10, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

12/10/2011

pdf

text

original

1.

Apakah arti dari sorting dan pengertian dari metode2 tsb & buat program dari masing2 metode Untuk melakukan proses pengurutan dapat menggunakan beberapa metode : • Bubble Sort • Quick Sort • Selection Sort • Merge Sort

 Bubble Sorting Pengurutan merupakan salah satu proses dasar yang sering dibahas dalam algoritma dan struktur data. Dan salah satu algoritma klasik dan paling sederhana dalam hal pengurutan (sorting) adalah algoritma Bubble Sort. Terlepas dari beberapa kekurangan yang membuat algoritma ini tidak banyak digunakan dalam proses pengurutan di aplikasi, namun tidak bisa dipungkiri, algoritma ini boleh dikatakan sebagai pionir algoritma sorting. Di dalam matakuliah Algoritma dan Struktur Data di berbagai perguruan tinggi juga bisa dipastikan memasukkan konsep pengurutan menggunakan algoritma Bubble sebagai salah satu pokok bahasan. Algoritma bubble sort dalam proses pengurutan data secara sederhana bisa diibaratkan seperti halnya gelembung udara (bubble). Algoritma ini akan menggeser nilai yang terkecil atau terbesar (sesuai dengan jenis pengurutan, ascending atau descending) ke posisi ujung dari daftar. Demikian seterusnya hingga semua daftar dalam keadaan terurut. Proses dasar yang terjadi dalam algoritma ini adalah proses pertukaran nilai (swapping). Contoh program #include<stdio.h> #include<conio.h> #include<iomanip.h> #include<iostream.h> #define n 7 void main()

K.22. } K++. I. for (I=0. A[I+1] = X.12}. while(I<=n-2 .7. for (I=0. int X.{ int A[n] = {15. I++) printf("%3i".17. } . A[I]). printf("Sebelum di-sort\n"). A[I] = A[I+1]. I <= n-1.5. while(K<=n-2) { I=0. I++) printf("%3d".10. I<= n-1. } printf("Sesudah di-sort\n").K) { if (A[I] > A[I+1]) { X = A[I]. A[I]). K=0. } I++. printf("\n").

int lb) { . quick sort juga tidak cocok jika digunakan untuk mengurutkan data dalam tabel yang berukuran kecil. Quick sort ini mengurutkan data dengan sangat cepat. Walaupun prosesnya sangat cepat. Contoh program Quick Sort #include <stdio.Output Program  Quick Sort Quick sort adalah salah satu metode pengurutan dalam bahasa pemrograman. Misalnya.h> #define max 50 void quick_sort(int darr[max]. tapi menghabiskan memori yang besar jika data yang diurut banyak.h> #include <conio.h> #include <iostream. proses sorting yang dilakukan secara rekursif. Tetapi tentu saja quick sort ini memiliki kekurangan. int ub. Selain itu. Proses sorting atau pengurutan dilakukan berdasarkan metode divide and conqueror.

quick_sort(darr. .n. int temp.lb.ub. int i. quick_sort(darr. int arr[max]. darr[down]=darr[up]. darr[up]=temp.lb. if (lb>=ub) return.up+1). while(down<up) { while (darr[down]<=a)down++. } void main() { clrscr().int a. if(down<up) { temp=darr[down]. a=darr[lb]. up=ub. darr[up]=a. } } darr[lb]=darr[up]. int up.down. while (darr[up]>a) up--.ub.up-1). down=lb.

ub=n.i<n. cin>>n. .i++) cout<<" "<<arr[i]. cout<<"Press any key to quit". getch(). for(i=0.ub).i<n. cout<<"Jumlah Data :". cout<<""<<endl. cout<<"Masukkan Data for (i=1.cin>>arr[i]. } quick_sort(arr.lb.lb=0. } Output Program :". cout<<"Hasil Pengurutan Data:"<<endl.i++) { cout<<"Data Ke-"<<i<<":".

Nilai dari i dimulai dari 1 ke n.  Merge Sort Algoritma Merge adalah algoritma yang dijalankan sebagai akibat dari terlalu banyaknya daftar yang diurutkan. Selection Sort Selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. sehingga menghemat ruang atau memori yang dibutuhkan. Algoritma merge sort membagi tabel menjadi dua tabel yang sama besar. . dengan menghasilkan lebih banyak daftar yang diurutkan sebagai output. Masingmasing tabel diurutkan secara rekursif. dan kemudian digabungkan kembali untuk membentuk tabel yang terurut. Implementasi dasar dari algoritma merge sort memakai tiga buah tabel. Namun algoritma ini dapat juga dilakukan langsung pada dua tabel. dimana n adalah jumlah total elemen dikurangi 1. dua untuk menyimpan elemen dari tabel yang telah di bagi dua dan satu untuk menyimpan elemen yang telah terurut.

++i) printf("%d ". int p.Algoritma Merge umumnya memiliki satu set pointer p0. Melakukan sesuatu dengan data item yang menunjuk daftar mereka masing-masing. Algoritmanya sebagai berikut: Selama p0. 2.n masih menunjuk data yang di dalam sebagai pengganti pada akhirnya: 1. while ((i <= q) && (j <= r)) { if (v[i] < v[j]) tmp[k++] = v[i++]. int q. Pada awalnya mereka menunjuk item yang pertama pada setiap daftar.n yang menunjuk suatu posisi di dalam satu set daftar L0. int j = q + 1.p + 1) * sizeof(int)). in).. v[i]).. int k = 0. Berikut contoh .h> #include <string. int *tmp = (int*)malloc((r .n . membantu salah program merge sort : #include <stdio. i < n. Menemukan pointers points untuk item dengan kunci yang paling rendah. printf("\n"). for (. int *v. } void merge(int *v. int r) { int i = p. else satu pointer untuk item yang berikutnya dalam daftar. int i = 0.h> void printv(char* in..h> #include <stdlib. int n) { printf("%s".

free(tmp). p. mergeS(v. r). 7. q. v. 1}. int p. q + 1. n). mergeS(v. merge(v. n). 6. char *argv[]) { int n = 10. 8.1).p + 1) * sizeof(int)). q). (r . tmp. n . 2.tmp[k++] = v[j++]. p. memcpy(v + p. v. } Output program . printv("V: ". 4. 5. int r) { if (p < r) { int q = (p + r) / 2. int v[] = {9. 3. r). printv("V: ". } } int main(int argc. 5. } while (i <= q) tmp[k++] = v[i++]. while (j <= r) tmp[k++] = v[j++]. return 0. mergeS(v. 0. } void mergeS(int *v.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->