java 快速排序

来源:互联网 发布:用友软件售后服务电话 编辑:程序博客网 时间:2024/04/29 20:24

快速排序的原理:
      以一个key为基准 ,>key的在一边, < key的在另一边;
分别从两边往中间调整key的位置直到移到中间为止;
递归调用第一条;

package tt;

public class dds{// 枢纽元,一般以第一个元素为基准进行划分public static void sort(Comparable[] data, int low, int high){int i = low;int j = high;if (low < high){// 从数组两端交替地向中间扫描Comparable pivotKey = data[low];// 进行扫描的指针i,j;i从左边开始,j从右边开始while (i < j){while (i < j && data[j].compareTo(pivotKey) > 0){j--;}// end whileif (i < j){// 比枢纽元素小的移动到左边data[i] = data[j];i++;}// end ifwhile (i < j && data[i].compareTo(pivotKey) < 0){i++;}// end whileif (i < j){// 比枢纽元素大的移动到右边data[j] = data[i];j--;}// end if}// end while// 枢纽元素移动到正确位置data[i] = pivotKey;// 前半个子表递归排序sort(data, low, i - 1);// 后半个子表递归排序sort(data, i + 1, high);}}// end sortpublic static void main(String[] args){Comparable[] c = { 4, 9, 23, 1, 45, 27, 5, 2 };sort(c, 0, c.length - 1);for (Comparable data : c){System.out.println(data);}}}

原创粉丝点击