【排序算法】——快速排序

来源:互联网 发布:axure for mac 编辑:程序博客网 时间:2024/06/05 23:01

场景:代码实现堆排序,选择使用Java代码

思路:每一趟快排之后得到一个元素,其左边所有元素都小于该元素,其右边所有的元素都大于该元素,并对两边再进行一趟排序,递归操作。

代码实现
package Sort;public class QuickSort {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint array[] = {9,7,4,23,5,7,0,12,67,11,5};for(int i : array){System.out.print(" "+i);}System.out.println("排序后");quickSort(array,0,array.length-1);for(int i : array){System.out.print(" "+i);}}public static void quickSort(int[] array,int beg,int end){if(beg < end){int mid = getMid(array, beg, end);quickSort(array,beg,mid-1);quickSort(array, mid+1, end);}}public static int getMid(int[] array,int beg,int end){int flag = array[beg];while(beg < end){while(beg < end && array[end]>=flag){end--;}array[beg] = array[end]; while(beg < end && array[beg]<=flag){beg++;}array[end] = array[beg];} array[beg] = flag; return beg;}}


0 0
原创粉丝点击