빠 른 정렬 k 대수 구하 기
3576 단어 알고리즘 경기알고리즘 경기 템 플 릿데이터 구조
void quick_sort(int *A, int x, int y)//
{
if(x < y)// 1 0
{
int i = x;
int j = y;
// , , ,4%~5%。
int m = x + (y-x)/2;
if(A[x] > A[m])
if(A[x] > A[y])
if(A[m] > A[y])
swap(A[m],A[y]);
else
swap(A[x],A[y]);
else//A[x]<A[m]
if(A[x] > A[y])
swap(A[x],A[y]);
else
if(A[y] > A[m])
swap(A[m],A[y]);
//
int key = A[y];
while(true)
{
while(i < j && A[i] <= key)// , A[i]
++i;
while(i < j && A[j] >= key)
--j;
if(i < j)
swap(A[i],A[j]);
else
break;
++i;// --j, bug。
}
swap(A[i],A[y]);//
quick_sort( A,x, i-1);
quick_sort( A,i+1, y);
}
}