首页 > 代码库 > java快速排序
java快速排序
//快速排序思想:选择数组最后一个数(key),比它小的排他前面 ( key放中间 ) 比它大的排后面, 然后递归 终止条件(数组只有一个数)public class Sort<T extends Comparable<T>> { //能排序的都是能比较的,所以必须继承java.lang.Comparable public void quick(T[] array){ sort(array,0,array.length-1); } private void sort(T[] array ,int left,int right){ if(left<right){ int p=partition(array,left,right); sort(array,left,p-1); sort(array,p+1,right); } } private int partition(T[] array,int left,int right){ int i=left-1; for(int j=left;j<right;j++) { if(array[j].compareTo(array[right])<=0) { i++; // 理解 int i=left-1 和 return i+1; 细节细节!!!需要自己体会 swap(array,i,j); } } swap(array,i+1,right); // 把key 插入 return i+1; } private void swap(T[] array, int i,int j){ T t=array[i]; array[i]=array[j]; array[j]=t; } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。