快速排序

来源:互联网 发布:淘宝hd最新版本 编辑:程序博客网 时间:2024/05/23 01:37
package algorithm.sort;import java.util.Arrays;/** * 快排:O(n*logn);如果是从小到大排序; * 思想:选一个关键数据,将数组分成以关键数据分割的独立两个子数组;比关键数据小的在左边,大的在右边,然后递归; * @author wangchao */public class Kuaipai {public void sort(int[] array,int left,int right){int flagL = left;int flagR = right;int seed = array[left];while (flagL<flagR) {while(flagL<flagR && array[flagR]>=seed){flagR--;}if(flagL<flagR){int temp = array[flagR];array[flagR] = array[flagL];array[flagL] = temp;}while(flagL<flagR && array[flagL]<=seed){flagL++;}if(flagL<flagR){int temp = array[flagR];array[flagR] = array[flagL];array[flagL] = temp;}}if(flagL>left) sort(array,left,flagL-1);if(flagR<right) sort(array,flagL+1,right);}public static void main(String[] args){int[] array = new int[]{2,1,6,3,8,9,4,7,10,5,11,4,12,179,8}; Kuaipai pai = new Kuaipai();pai.sort(array,0,array.length-1);System.out.println(Arrays.toString(array));}}


其他排序算法批量下载地址:几种经典的排序算法java实现


0 0
原创粉丝点击