java快速排序QuickSort的代码和使用(包含清晰完成过程)

来源:互联网 发布:php ftp上传大文件 编辑:程序博客网 时间:2024/06/05 02:32
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-------");}}
0 0
原创粉丝点击