做房间预定网站需要什么软件,给人做网站网站犯法嘛,建站外贸网站建设,江门网站推广深圳公司何为快速算法#xff1a;它是冒泡排序的改进~
基本思想是#xff1a;通过一趟排序将要排序的数据分割成独立的两部分#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小#xff0c;然后再按此方法对这两部分数据分别进行快速排序#xff0c;整个排序过程可以…何为快速算法它是冒泡排序的改进~
基本思想是通过一趟排序将要排序的数据分割成独立的两部分其中一部分的所有数据都比另外一部分的所有数据都要小然后再按此方法对这两部分数据分别进行快速排序整个排序过程可以递归进行以此达到整个数据变成有序序列。算法的整个处理过程如下核心思想基准数不断不断归位的过程右边大于基准数左边小于基准数
当基准数为左边第一个数时从右边向左开始扫描当扫描到小于基准数的时候暂停扫描此时数组下标为j轮到左边往右边扫描当扫描到大于基准数的时候暂停扫描此时数组下标为i交换i与j下标的数值继续“”的步骤。什么时候截止呢当ij时将基准数base与i所指的数交换然后不断的迭代这个过程。当基准数为左边第一个数时从右边向左开始扫描当扫描到小于基准数的时候暂停扫描此时数组下标为j轮到左边往右边扫描当扫描到大于基准数的时候暂停扫描此时数组下标为i交换i与j下标的数值继续“”的步骤。什么时候截止呢当ij时将基准数base与i所指的数交换然后不断的迭代这个过程。算法实现如下public static void quickSort(int [] a, int left, int right) { int i, j, t, base; if (left right) return; base a[left]; // base中存的就是基准数 i left; // 设置左右两个参数 j right; while (i ! j) { //要先从右边开始找 while (a[j] base i j) j--; // 再找左边的 while (a[i] base i j) i; // 交换两个数在数组中的位置 if (i j) { t a[i]; a[i] a[j]; a[j] t; } } // 最终将基准数归位 a[left] a[i]; a[i] base; quickSort(a, left, i - 1);// 继续处理左边的这里是一个递归的过程 quickSort(a, i 1, right);// 继续处理右边的 这里是一个递归的过程 } http://blog.csdn.net/sunhuaqiang1/article/details/52059322有时间可参考此链接