域名备案需要有网站吗,盐城网站建设哪家快,电子商务网站建设与维护第二版,微信是哪个公司开发的软件基本思想#xff1a;通过一趟排序将要排序的数据分割成独立的两部分#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小#xff0c;然后再按此方法对这两部分数据分别进行快速排序#xff0c;整个排序过程可以递归进行#xff0c;以此达到整个数据变成有序序…基本思想通过一趟排序将要排序的数据分割成独立的两部分其中一部分的所有数据都比另外一部分的所有数据都要小然后再按此方法对这两部分数据分别进行快速排序整个排序过程可以递归进行以此达到整个数据变成有序序列。 例如 3 1 5 2 7 9 3 0 首先以3为基准数基准数的意思就是以这个数为参考其他数和它做比较现在例如有两个人分别从左边和右边开始找右边的人要找到比基准数3小的数左边的人找比基准数3大的数找到以后进行交换右边的人先开始找例如上面的数组右边的人从0开始找0比3小记录下这个数字左边的人从3开始找找到5比3大 现在把这两个数交换位置得到新的数组3 1 0 2 7 9 3 5右边的人继续重复上述步骤找到2左边的人到了2也没有比3大的数字于是两个人在数字2相遇了就把基准数3和这个2交换得到新的数组2 1 0 3 7 9 3 5把3看做分割点整个数组分为两部分左边的2 1 0和右边的7 9 3 5重复上述步骤继续排序 java代码如下 public class QuickSort {public static void main(String[] args) {// TODO Auto-generated method stub
QuickSort qs new QuickSort();int[] score {10,9,8,7,6,5,4,3,2,1};qs.quickSort(score,0,score.length-1);for(int i0;iscore.length;i){System.out.print(score[i] );}}public void quickSort(int[] a,int left,int right){int i,j,t,temp;if(leftright)return;i left;j right;temp a[left];while(i!j){while(a[j]temp ij)j--;while(a[i]temp ij)i;if(ij){ ta[i];a[i]a[j];a[j]t;}}a[left]a[i];a[i]temp;quickSort(a,left,i-1);quickSort(a,i1,right);}} 执行结果 1 2 3 4 5 6 7 8 9 10 转载于:https://www.cnblogs.com/paopaoquan/p/6368204.html