2016년 3월 31일 목요일

quick sort

 어쩌다 보니.. 퀵 소트를 구현해야 할 일이 있는데... 라이브러리만 쓰다보니.. 기억이 안난다.. 그래서 다시 정리..

https://docs.google.com/presentation/d/1jsvtWSUbkbT5ZsOIRUQ3zjbcFDzq_7VZ9wRalrny9YQ/edit?usp=sharing
void swap(int &a, int &b)
{
 int temp = a;
 a = b;
 b = temp;
}

void qSort(int *a, int s, int e)//e가 pivot, 
{
 if (s >= e)return;
 int l, t;
 for (l = t = s; l < e; l++)
 {
  if (a[l] < a[e])
  {
   swap(a[l], a[t]);
   t++;
  }
 }
 if (t != e) swap(a[t], a[e]);
 qSort(a, s, t - 1);
 qSort(a, t + 1, e);
}

댓글 없음:

댓글 쓰기