请教快速排序如何变成递减输出啊
请问快速排序怎么变成递减输出啊?
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <string>
using namespace std;
void QuickSort(int *pData, int left, int right)
{
int i, j;
int middle, iTemp;
i = left;
j = right;
middle = pData[(left + right) / 2]; //求中间值
do
{
while ((pData[i] < middle) && (i < right)) //从左扫描大于中值的数
i++;
while ((pData[j] > middle) && (j > left)) //从右扫描小于中值的数
j--;
if (i <= j) //找到了一对值
{
//交换
iTemp = pData[i];
pData[i] = pData[j];
pData[j] = iTemp;
i++;
j--;
}
} while (i <= j) ; //如果两边扫描的下标交错,就停止(完成一次)
//当左边部分有值(left <j),递归左半边
if(left <j)
QuickSort (pData,left,j);
//当右边部分有值(right> i),递归右半边
if(right> i)
QuickSort (pData,i,right);
}
void main()
{
int data[20]={34,43,67,6765,12,0,42,4,56,3,99,222,1,123,45,42,23,10,78,35};
QuickSort(data,0,19);
for(int i=0;i <20;i++)
{
cout < <data[i] < < ' ';
}
}
我改成
while ((pData[i] > middle) && (i < right)) //从左扫描大于中值的数
i++;
while ((pData[j] <middle) && (j > left)) //从右扫描小于中值的数
怎么没有成功排序?
------解决方案--------------------
程序本身没有任何问题,测试结果也和上面一样没有出错,不知道楼主用的是什么编译器..................
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <string>
using namespace std;
void QuickSort(int *pData, int left, int right)
{
int i, j;
int middle, iTemp;
i = left;
j = right;
middle = pData[(left + right) / 2]; //求中间值
do
{
while ((pData[i] < middle) && (i < right)) //从左扫描大于中值的数
i++;
while ((pData[j] > middle) && (j > left)) //从右扫描小于中值的数
j--;
if (i <= j) //找到了一对值
{
//交换
iTemp = pData[i];
pData[i] = pData[j];
pData[j] = iTemp;
i++;
j--;
}
} while (i <= j) ; //如果两边扫描的下标交错,就停止(完成一次)
//当左边部分有值(left <j),递归左半边
if(left <j)
QuickSort (pData,left,j);
//当右边部分有值(right> i),递归右半边
if(right> i)
QuickSort (pData,i,right);
}
void main()
{
int data[20]={34,43,67,6765,12,0,42,4,56,3,99,222,1,123,45,42,23,10,78,35};
QuickSort(data,0,19);
for(int i=0;i <20;i++)
{
cout < <data[i] < < ' ';
}
}
我改成
while ((pData[i] > middle) && (i < right)) //从左扫描大于中值的数
i++;
while ((pData[j] <middle) && (j > left)) //从右扫描小于中值的数
怎么没有成功排序?
------解决方案--------------------
程序本身没有任何问题,测试结果也和上面一样没有出错,不知道楼主用的是什么编译器..................