建设网站哪些好,律师怎样做网站,中文 wordpress,制作网页的第一步是什么1.自我介绍 1.快速排序是由东尼霍尔所发展的一种排序算法。 2.快速排序又是一种分而治之思想在排序算法上的典型应用。 3.本质上来看#xff0c;快速排序应该算是在冒泡排序基础上的递归分治法。 2.思想共享 快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟…1.自我介绍 1.快速排序是由东尼·霍尔所发展的一种排序算法。 2.快速排序又是一种分而治之思想在排序算法上的典型应用。 3.本质上来看快速排序应该算是在冒泡排序基础上的递归分治法。 2.思想共享 快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行以此达到整个数据变成有序序列。 3.思路分析 从数列中挑出一个元素称为 基准pivot; 重新排序数列所有元素比基准值小的摆放在基准前面所有元素比基准值大的摆在基准的后面相同的数可以到任一边。在这个分区退出之后该基准就处于数列的中间位置。这个称为分区partition操作 递归地recursive把小于基准值元素的子数列和大于基准值元素的子数列排序 4.实战分析 public static void quickSort(int[] array, int left, int right) {int l left; //左下标int r right;//右下表int temp 0; //临时变量//pivot 中轴值int pivot array[(l r) / 2];//让比pivot小的值放到左边比pivot大的值放到右边while (l r) {while (array[l] pivot) {// 左边直到找到pivotl 1;}while (array[r] pivot) {// 右边直到找到pivotr - 1;}if (l r) { //说明pivot左边的都pivot右边的都pivotbreak;}//交换temp array[l];array[l] array[r];array[r] temp;//如果交换完之后发现arr[l]pivot,r--;,前移if (array[l] pivot) {r - 1;}//如果交换完之后发现arr[r]pivot,l;,前移if (array[r] pivot) {l 1;}}//如果lr,l;r--;否则栈溢出if (l r) {l 1;r - 1;}//向左递归if (left r) {quickSort(array, left, r);}//向右递归if (right l) {quickSort(array, l, right);}}
5.心惊胆战的执行一下 int[] arr new int[]{-9, 78, 0, 23, -567, 70};quickSort(arr, 0, arr.length - 1);System.out.println(Arrays.toString(arr));