快速排序算法是一种基于交换的高效的排序算法,如何用C++写一个快速排序算法
void QuickSort(int array[], int left, int right)
{
int i = left;
int j = right;
int midValue = array[(left+right)/2];
int temp;
do
{
//找出左边第一个比基准值大的数
while(i<right && array[i]<midValue)
{
++i;
}
//找出右边第一个比基准值小的数
while(j>left && array[j]>midValue)
{
--j;
}
//上面找出的两个数交换
if (i<=j)
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
++i;
j--;
}
//交换以后继续上述过程,再交换
}while(i<j);
//形成{左边小}基准值{右边大},递归,直到左右区间只有一个值
if (j>left)
{
QuickSort(array, left, j);
}
if (i<right)
{
QuickSort(array, i, right);
}
}
2 回答1.7k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答933 阅读
1 回答1.1k 阅读
2 回答1.1k 阅读