알고리즘

퀵 정렬(Quick Sort)

Lich King 2015. 10. 30. 09:01

간단한 퀵 정렬이다.

void quickSort(int data[], int left, int right){
 int i, j, key, tmp;
 if (left < right){
  i = left;
  j = right + 1;
  key = data[left];

  do{
   do{
    i++;
   } while (data[i] < key);
   
   do{
    j--;
   } while (data[j] > key);
  }
  if (i < j){
   tmp = data[i];
   data[i] = data[j];
   data[j] = tmp;
  }while (i < j);
  tmp = data[left];
  data[left] = data[j];
  data[j] = tmp;
  quickSort(data, left, j - 1);
  quickSort(data, j + 1, right);
 }
}