建设银行融信通网站,新手学做网站视频,网站页头,网站安全查询系统package com.asiainfo.test;import java.util.Arrays;import sun.misc.Sort;public class QKSORT {//基本思路是#xff1a;选择一个值为key 一般是选择左边第一个为key//先是从右向左找到小于 key 的值 将此值与 key 进行交换#xff0c;由于key 是一个标记先不用交换 …package com.asiainfo.test;import java.util.Arrays;import sun.misc.Sort;public class QKSORT {//基本思路是选择一个值为key 一般是选择左边第一个为key//先是从右向左找到小于 key 的值 将此值与 key 进行交换由于key 是一个标记先不用交换 先是将low与high 值交换//然后是从左向右找到大于key的值 将此值与key 进行交换由于key 是一个标记先不用交换先将high 与low 进行交换public static int getkeyIndex(int []array,int low,int hight){int keyarray[low];while(hightlow){while(array[hight]keyhightlow){//先是从右向左找到小于 key 的值 将此值与 key 进行交换由于key 是一个标记先不用交换 先是将low与high 值交换hight--;}array[low]array[hight];while(array[low]keyhightlow){//然后是从左向右找到大于key的值 将此值与key 进行交换由于key 是一个标记先不用交换先将high 与low 进行交换low;}array[hight]array[low];}array[low]key; 排序的终止条件是左侧指针和右侧指针重合即lowhighreturn low;}public static void sort(int []array,int low,int hight){if(hightlow){int indexgetkeyIndex(array, low, hight);// //产生一个序列以后会出现两个序列左边全比关键字小右边全比关键字大sort(array,low,index-1);//递归取排列序列的返回值为减去1为highsort(array,index1,hight); //递归取排序序列的返回值加1位low// //因为index左侧的值都比它小右侧的值都比他大所以result的值}}public static void main(String[] args) {int [] array{7,2,6,8,1,5,3};sort(array,0,array.length-1);System.out.println(Arrays.toString(array));
}
}参考https://blog.csdn.net/qq_34520606/article/details/76038671