- (void)quickSortWithArray:(NSMutableArray *)arr m:(int)m n:(int)n
{
int key;
int i,j,k;
if (m < n) {
k = (i + j) / 2;
[self swapX:arr[m] Y:arr[n]];
key = arr[m];
i = m + 1;
j = n;
while (i <= j) {
while (i <= n && (arr[i] <= key))
i++;
while((j >= m) && (arr[j] > key))
j--;
if (i < j)
[self swapX:i Y:j];
}
[self swapX:arr[m] Y:arr[j]];
[self quickSortWithArray:arr m:m n:j - 1];
[self quickSortWithArray:arr m:j+1 n:n];
}
}
- (void)swapX:(int)x Y:(int)y
{
int temp;
temp = x;
x = y;
y = temp;
}