/**
*
* @param numbers 待排序数组
* @param low 开始索引
* @param high 结束索引
* @return
*/
public static int getMiddle(int[] numbers, int low,int high){
int temp = numbers[low];
while (low < high){
while (low < high && temp < numbers[high]){
high--;
}
numbers[low] = numbers[high];
while (low <high && temp >= numbers[low]){
low++;
}
numbers[high] = numbers[low];
}
numbers[low] = temp;
return low;
}
/**
*
*@param numbers 待排序数组
@param low 开始索引
@param high 结束索引
*/
public static void quickSort(int[] numbers,int low,int high){
if (low < high) {
int middle = getMiddle(numbers, low, high);
quickSort(numbers, low, middle - 1);
quickSort(numbers, middle + 1, high);
}
}
/**
* 快速排序
* @param numbers 带排序数组
*/
public static void quick(int[] numbers)
{
if(numbers.length > 0) //查看数组是否为空
{
quickSort(numbers, 0, numbers.length-1);
}
}
/*打印数组*/
public static void printArr(int[] numbers)
{
for(int i = 0 ; i < numbers.length ; i ++ )
{
System.out.print(numbers[i] + ",");
}
System.out.println("");
}
快速排序法
最新推荐文章于 2024-09-12 19:02:20 发布