FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

GitHub Viewer

package sort; import java.util.Stack; /** * Created by ozc on 2018/3/17. * * @author ozc * @version 1.0 */ public class QuickSort { public static void main(String[] args) { //int[] arr = {1, 4, 5, 67, 2, 7, 8, 6, 9, 44, 34, 5, 5, 2, 34, 5, 62, 42, 1, 1324, 2346}; int[] arr = {23, 34, 33, 56, 45}; quickSort(arr, 0, arr.length - 1); System.out.println("Java3y " + arr); } /** * 快速排序 * * @param arr * @param L 指向数组第一个元素 * @param R 指向数组最后一个元素 */ public static void quickSort(int[] arr, int L, int R) { int i = L; int j = R; //支点 int pivot = arr[(L + R) / 2]; //左右两端进行扫描,只要两端还没有交替,就一直扫描 while (i arr[i]) i++; //寻找直到比支点小的数 while (pivot < arr[j]) j--; //此时已经分别找到了比支点小的数(右边)、比支点大的数(左边),它们进行交换 if (i key) { stack.push(key + 1); stack.push(hi);//这样,最后入栈的就是key右边的部分,则下一次循环先处理key右边的部分 } } } } public static int partition(int[] a, int low, int high) { // 选第一个元素作为key int key = a[low]; while (low < high) { // 右边找到比key还要小的 while (a[high] >= key && low < high) { high--; } a[low] = a[high]; // 左边找到比key要大的 while (a[low]

Back | FazBrowse Home | New Git URL