void quicksort(int **numbers, int left, int right, int loop)
{
int pivot, i, j, temp
while(loop>=1){
loop--;
if (left < right)
{
i = left;
j = right + 1;
pivot = numbers[loop][left];
do
{
do
{
i++;
} while (numbers[loop][i] < pivot);
do
{
j--;
} while (numbers[loop][j] > pivot);
if (i < j)
temp = numbers[loop][i];
numbers[loop][i]=numbers[loop][j];
numbers[loop][j]=temp;
} while (i<j);
temp=numbers[loop][left];
numbers[loop][left]=numbers[loop][j];
numbers[loop][j]=temp;
quicksort(numbers, left, j - 1, loop+1);
quicksort(numbers, j + 1, right, loop+1);
}
}
}
일반적인 재귀 퀵정렬에 2차원 배열만 도입했을 뿐인데.. 도대체 왜 안되는지 모르겠네요..
배열의 크기는 loop x 100 입니다..
니가 하려는게 뭔데?
numbers[0][0]부터 numbers[0][99]까지 정렬하고요 numbers[1][0]부터 numbers[1][99] 쭉..가서 numbers[loop-1][0]부터 numbers[loop-1][99]까지 정렬하는거요
그럼 각 행에 대해서 1차원 quicksort를 실행해야지. 저렇게 해서는 캐삽질이다. pivot의 위치를 또 다른 하나의 1차원 배열로 넘겨줘야돼.