2. Pengertian Quick short adalahalgoritmapengurutan data yang paling cepatdan paling banyakdigunakandalampengurutan data. Quick short seringdisebutjuga partition Exchange short, karenadalamprosespengurutannyamembagi-membagi data menjadibeberapapartisi-partisidandibandingkandalampartisi-partisitersebut.
3. Teknikpartisitabel Pilihsebagaielemen pivot Pindai (scan) tabeldarikirisampaiditemukanelemenap≥ x Pindaitabeldarikanansampaiditemukanelemenaq≤ x Tukarapdenganaq Ulangilangkah 2 dariposisi p+1, danlangkah 3 dariposisi q-1, sampaikeduapemindaianbertemuditengahtabel
4. Cara mencari pivot Dalam quick sort, pemilihan pivot adalahhal yang menentukanapakahalgoritmatersebutakanmemberikanperformaterbaikatauterburuk, berikutbeberapacarapemilihan pivot : 1. Elemenpertama, elementengahataupunelemenakhir data. Cara inihanyabagusjikaelemen data tersusunsecaraacak, tetapitidakbagusjikaelemensemulasudahberurutan
5. 2. Memilih pivot secaraacakdarisalahsatu data padaelemen data. Cara inibagus, tapibanyakmenghabiskanbanyakmemori, karenaperlubanyakmemoriuntukmembangkitkanpengacakan data. Lagipulaitutidakmengurangikompleksitaswaktualgoritma. 3. Elemen median data. Cara ini paling bagus, karenahasilpartisimenghasilkanduabagiantabel yang berukuranseimbang (masing-masing =n/2 elemen). Cara inimemberikankompleksitaswaktu yang minimum. Masalahnya, mencari median darielemen data yang belumterurutadalahpersoalantersendiri.
6. ContohAnalisis quick short Misalkan data sepertiberikut: 47 91 90 31 63 18 21 47 p 91 90 31 pivot 63 18 21 q 47 p 91 90 31 pivot 63 18 21 q Langkah 1 Langkah 2 dan 3
7. Langkah 4 21 p 91 90 31 pivot 63 18 47 q 21 91 p 90 31 pivot 63 18 q 47 21 18 p 90 31 pivot 63 91 q 47 Langkah 2 dan 3 Langkah 4
17. ContohProgramnya #include <iostream.h> #include <conio.h> int data[100],data2[100]; int n; void tukar(inta,int b) { int t; t = data[b]; data[b] = data[a]; data[a] = t; } void QuickSort(int L, int R) { inti, j; int mid; i = L; j = R; mid = data[(L+R) / 2]; do { while (data[i] < mid) i++; while (data[j] > mid) j--; if (i <= j) { tukar(i,j); i++; j--; }; } while (i < j); if (L < j) QuickSort(L, j); if (i < R) QuickSort(i, R); }