public static void QuickSort(int [] dataArray , int left ,int right )
{
if (left <right)
{
//标志位 要排序的数都拿来和他比较
int index = dataArray[left];
//记录数组的起始索引
int i = left;
//记录数组的最后的索引
int j = right;
//while走完时除了标志数 其他的数字都排好了
while (i < j)
{
//从后往前排 找到一个比标志数小的往前排
while (true && i < j)
{
if (dataArray[j] < index)
{
dataArray[i] = dataArray[j];
break;
}
else
{
j--;
}
}
//从前往后排 找到一个比标志数大的往后排
while (i < j)
{
if (dataArray[i] > index)
{
dataArray[j] = dataArray[i];
break;
}
else
{
i++;
}
}
}
//将标志位的数字排好
dataArray[i ]=index ;
//使用递归对标志数左右两边分别进行排序
QuickSort(dataArray, left, i - 1);
QuickSort(dataArray, i+1, right );
}
}
一定要先知道快速排序的思想再来看代码,这样既容易理解又能记牢。