Sorting and Searching

Sorting

Sorting dibutuhkan untuk mempercepat proses searching dalam sebuah list. Ada 2 tipe sorting, yaitu ascending dan descending.
Sorting dibagi menjadi yang simple dan intermediate.

Simple : 

- Bubble Sort
- Selection Sort
- Insertion Sort

Intermediate : 

- Quick Sort
- Merge Sort

Bubble Sort

Dengan membandingkan kedua nilai yang berdekatan, lalu ditukar jika dibutuhkan. Juga disebut sebagai exchange sort.

void Bubble(int *DataArr, int n)
{
    int i, j;
    for(i=1; i<n; i++)
    for(j=n-1; j>=i; j--)
    if(DataArr[j-1] > DataArr[j])
               Swap(&DataArr[j-1],&DataArr[j]);
}

Selection Sort

Algorithm : 
for(i=0; i<N-1; i++){      /* N=number of data */
  Set idx_smallest equal to i
  for(j=i+1; j<N; j++){
  If array[ j ] < array [ idx_smallest ] then idx_smallest = j
    }
  Swap array[ i ] with array[ idx_smallest ]
}

Insertion Sort

Algorithm : 
for(i=1; i<n; i++) {
     x = A[i], insert x to its suitable place between A[0] and A[i-1].
}

Quick Sort

Algorithm:
void QuickSort(int left, int right)
{
      if(left < right){
            //arrange elements  R[left],...,R[right] that
            //producing new sequence:
            R[left],...,R[J-1] < R[J] and R[J+1],...,R[right] > R[J].
            QuickSort(left, J-1);
            QuickSort(J+1, right);
       }
}

Searching

Searching adalah proses mencari elemen dari sebuah array yang sama. Searching adalah aksi untuk mendapatkan informasi berdasarkan informasi yang sudah ada. Ada beberapa tipe searching algorithm : linear search, binary search, interpolation search.

Linear Search

Mencari sebuah elemen dimulai dari index array paling awal sampai ketemu. Tipe ini dikenal lambat dan memakan proses yang lama terlebih lagi jika semua elemen array belum urut.

Binary Search

Dengan membagi dua jumlah elemen array terlebih dahulu menjadi kanan/kiri, kemudian membaginya terus sampai berjumlah 1 elemen. Selanjutnya adalah menggabungkan satu kumpulan elemen dengan satu kumpulan elemen lainnya.

Nama : Reza Arief Setianto
NIM : 1801427040
Teknik Industri / Algorithm and Programming
binus.ac.id skyconnectiva.com

Komentar

Postingan populer dari blog ini

Algoritma - Week 1 Pengenalan Bahasa C (Ringkasan)

Program Control: Repetition