Pengertian Sorting
sorting adalah suatu proses pengurutan data yang sebelumnya di susun secara acak atau tidak teratur menjadi urut dan teratur menurut suatu aturan tertentu.
pengurutan dibagi 2 yaitu:
- ascending (pengurutan dari karakter /angka kecil ke karakter/angka besar).
- descending (pengurutan dari karakter/angka besar ke karakter/angka kecil).
A. Metode pengurutan langsung :
- metode penukaran (exchange selection) / Gelembung (bubble sort)
- metode seleksi (straight selection sort)
- metode penyisipan langsung (straight insertion sort)
B. Metode pengurutan tidak langsung :
- shell sort
- quick sort
- merge sort
A. metode pengurutan langsung
1. metode penukaran (exchange selection) /gelembung (bubble sort)
- metode pertama yang paling banyak di pelajari pemrograman.
- sederhana :buble sort tidak efisien dan menyita banyak waktu prosessor lebih banyak dari pada teknik sorting yang lain dan tidak lebih dari 30 atau kurang dari 30 elemen, penggunaan bubble sort masih sangat baik
- metode gelembung / penukaran adalah metode yang mendasarkan penukaran 2 buah element untuk mencapai keadaan urut yang di inginkan
Langkah-langkah :
- baca array elemen yang di urutkan (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. Metode Penyisipan Langsung (Straight Insertion Sort)
Dapat dibagi menjadi 2 bagian- Bagian sebelah kiri data sudah terurut (tujuan)
- Bagian sebelah kanan data belum terurut (sumber)
1 : Baca array elemen yang akan diurutkan (n)
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
DeklarasiI,J,K,N : IntegerTemp : realA : array [1..20] of realDeskripsiInput(N) {maksimal N=20}K traversal [1..N]Input (Af) {masukkan data sebanyak N}I traversal [2..N]Temp ß A1J ß I-1While (temp <Aj) and (J>=1) doAj+1 ß AjJ ßJ-1EndwhileAj+1 ß Temp
3. Metode Seleksi (Straight Selection Sort)
Selection sort dimulai dengan menyelesaikan elemen array (misalnya elemen pertama). Kemudian sorting mencari keseluruhan array hingga menemukan nilai yang terkecil. Sorting menempatkan nilai terkecil pada elemen tersebut, memilih elemen kedua dan mencari elemen terkecil kedua.
Langkah-langkah Straight Selection Sort
1 : Baca array elemen yang diurutkan (n)
2 : Kerjakan langkah-langkah 3 sampai langkah 5
untuk i=1 s/d n-1
3 : Tentukan lokasi awal data terkecil Mindeks =1;
kerjakan langkah 4 untuk j=i+1 s/d n
4 : Cari data terkecil dan catat lokasinya. Test
apakah AMindeks > Aj?
Jika ya, catat Mindeks = j
5 : Tukar nilai Amindeks dengan Aj
6 : Selesai