快速排序算法
快速排序算法的基本思想是:把排序对象的数组分割为2个子数组,而其中一个数组的值都大于另一个数组,并且递归这2个子数组。
void Run(int[] data,int low, int high)
{
int middle = data[(low+high)/2];
do
{
int i = low;
int j = high;
while(data[i]<middle&&i<high)
{
i++;
}
while(data[j]>middle&&j>low)
{
j--;
}
if(i<=j)
{
int temp = data[i];
data[i] = data[j];
data[j] = temp;
i++;
j--;
}
}while(i<=j);
if(i<high)
{
Run(data,i,high);
}
if(j>low)
{
Run(data,low,j);
}
}
{
int middle = data[(low+high)/2];
do
{
int i = low;
int j = high;
while(data[i]<middle&&i<high)
{
i++;
}
while(data[j]>middle&&j>low)
{
j--;
}
if(i<=j)
{
int temp = data[i];
data[i] = data[j];
data[j] = temp;
i++;
j--;
}
}while(i<=j);
if(i<high)
{
Run(data,i,high);
}
if(j>low)
{
Run(data,low,j);
}
}