Sorting dalam C++
Sorting dalam C++
Sorting adalah proses mengatur sekumpulan objek menurut
aturan atau susunan tertentu. Urutan objek tersebut dapat menaik atau disebut
juga ascending (dari data kecil ke data lebih besar) ataupun
menurun/descending(dari data besar ke data kecil).
Metode Sorting:
1. Bubble
Sort / Pengurutan Gelembung
Bubble
sort / pengurutan gelembung adalah suatu metode pengurutan gelembung yang
diinspirasi oleh gelembung sabun yang ada di dalam permukaan air, karena berat
jenis gelembung sabun lebih ringan daripada berat jenis air maka gelembung
sabun akan selalu megapung. Prinsip pengapungan ini juga dipakai pada
pengurutan gelembung. Elemen yang berharga paling kecil “diapungkan”, yang
artinya diangkat ke atas (atau ke ujung paling kiri) melalui pertukaran.
Langkah-langkah:
- Baca array elemen yang diurutkan (N)
- Kerjakan langkah 3 untuk I=1 s/d N-1
- Kerjakan langkah 4 untuk J=1 s/d N-1
- Cek apakah A[J]>A[J+1}
- Selesai
Contoh Program Bubble Sort
/* Bubble Sort */
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
void bubble_sort(int array[], int size)
{
int temp, i, j;
for (i=0; i<size-1; i++)
for (j=0; j<size-1-i; j++)
if (array[j] >
array[j+1])
{
temp= array[j];
array[j]= array[j+1];
array[j+1]= temp;
}
}
2. Selection
Sort/Pengurutan Maksimum-minimum
Metode
pengurutan ini didasarkan pada pemilihan elemen maksimum atau minimum kemudian
mempertukarkan elemen maksimum-minimum tersebut dengan elemen terujung larik
(elemen ujung kiri atau elemen ujung kanan), selanjutnya elemen terujung itu
kita “isolasi” dan tidak diikut sertakan pada proses selanjutnya. Karena proses
utama dalam pengurutan adalah pemilihan elemen maksimum/minimum, maka metode
ini disebut metode pemilihan ( selection).
Langkah-langkah:
- Baca array elemen yang diurutkan (n)
- Kerjakan langkah-langkah 3 sampai langkah 5, untuk i=1 s/d n-1
- Tentukan lokasi awal data terkecil Mindeks =1; kerjakan langkah 4 untuk j=i+1 s/d n
- Cari data terkecil dan catat lokasinya. Test apakah AMindeks > Aj? Jika ya, catat Mindeks = j
- Tukar nilai Amindeks dengan Aj
- Selesai
Ilustrasi
3. Insertion Sort/Pengurutan sisip
Insertion
Sort/pengurutan sisip adalah metode pengurutan dengan cara menyisipkan elemen
larik pada posisi yang tepat. Pencarian posisi yang tepat dilakukan dengan
pencarian beruntun. Selama pencarian posisi yang tepat dilakukan pergeseran
elemen larik.
Langkah-langkah:
1. Baca array elemen yang akan diurutkan (n)
2. Kerjakan langkah 3 sampai langkah 6 untuk i : 1 s/d n-1
3. Tentukan elemen yang akan disisipkan (Temp = A [i] ; j = i-1;)
4. Kerjakan langkah 5 selama temp <A [j] dan j >= 0;
5. A [j+1]= A[j] ; j =j-1;
6. Tempatkan elemen A [j+1] = Temp;
7. Selesai
Algoritma
Straight Insertion Sort
Deklarasi
I,J,K,N : Integer
Temp : real
A : array [1..20] of real
Deskripsi
Input(N) {maksimal N=20}
K traversal [1..N]
Input (Af) {masukkan data sebanyak N}
I traversal [2..N]
Temp ß A1
J ß I-1
While (temp <Aj) and (J>=1) do
Aj+1 ß Aj
J ßJ-1
Endwhile
Aj+1 ß Temp
Sumber:
Komentar
Posting Komentar