public class QuickSort
{
public static void sort(int array[], int low, int high)
{
int l = low;
int h = high;
int k = array[low];
while (l < h)
{
while (l < h && array[h] >= k)
{
h--;
}
if (l < h)
{
for (int i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
System.out.println();
System.out.print("第"+(l+1)+"号和第"+(h+1)+"号交换位置-----");
System.out.println(" l=" + array[l] + " h=" + array[h] + " k=" + k);
System.out.println();
int temp = array[h];
array[h] = array[l];
array[l] = temp;
l++;
}
while (l < h && array[l] <= k)
{
l++;
}
if (l < h)
{
for (int i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
System.out.println();
System.out.print("第"+(l+1)+"号和第"+(h+1)+"号交换位置-----");
System.out.println(" l=" + array[l] + " h=" + array[h] + " k=" + k);
System.out.println();
int temp = array[h];
array[h] = array[l];
array[l] = temp;
h--;
}
}
if (l > low)
sort(array, low, h - 1);
if (h < high)
sort(array, l + 1, high);
}
public static void main(String args[])
{
long startTime=System.nanoTime(); //获取开始时间
int arr[]=new int[25];
for(int r=0;r<arr.length;r++)
{
arr[r]=(int)(Math.random()*100+1);//100之内的随机数
}
sort(arr,0,arr.length-1);
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
long endTime=System.nanoTime(); //获取结束时间
System.out.println("\n");
System.out.println("-------程序运行时间: "+(endTime-startTime)+"ns-------");
}
}
java快速排序QuickSort的代码和使用(包含清晰完成过程)
最新推荐文章于 2023-06-04 10:54:50 发布