漳州企业网站建设制作,dedecms 调用 两个网站,外贸网站建设ppt模板下载,网页图片显示不出来快速排序算法 快排是基于分治的思想来的#xff0c;快速排序就是在元素序列中选择一个元素作为基准值#xff0c;每趟总数据元素的两端开始交替排序#xff0c;将小于基准值的交换的序列前端#xff0c;大于基准值的交换到序列后端#xff0c;介于两者之间的位置称为基准值…快速排序算法 快排是基于分治的思想来的快速排序就是在元素序列中选择一个元素作为基准值每趟总数据元素的两端开始交替排序将小于基准值的交换的序列前端大于基准值的交换到序列后端介于两者之间的位置称为基准值最终的位置。同时序列被划分成两个子序列再对两个子序列进行排序这个过程就是递归的过程直到子序列的长度为1则完成排序。 模板 洛谷P1177排序
代码
import java.util.Scanner;class quickSort {public static void main(String[] args) {Scanner scannernew Scanner(System.in);int nscanner.nextInt();int arr[]new int[n];for (int i 0; i arr.length; i) {arr[i]scanner.nextInt();}quick(arr,0,arr.length-1);for (int i 0; i arr.length; i) {System.out.print(arr[i] );}}public static void quick(int [] keys, int begin,int end){if (begin0beginendendkeys.length){int ibegin,jend;int xkeys[i];//找到基准元素while (i!j){ //while (ijkeys[j]x){ //从后往前找j--;} //直到找到小的数字了if (ij){keys[i]keys[j]; //i往后移动一位讲原来i的位置赋值给j}while (ijkeys[i]x){ //从前向后寻找较大值移动i;}//找到较大值了if (ij){keys[j--]keys[i];//讲较大值赋值给j并且j往前移动一位;}}//当i等于j的时候结束上面的循环 需要重新设置基准值基准值就是当前的位置keys[i]x;quick(keys,begin,j-1);quick(keys,i1,end);}}
}
时间复杂度 最好 nlogn 最坏on方快速排序算法并且是不稳地的。