【2015/6/9】快速排序的java简单实现

来源:互联网 发布:广州疯狂java培训好吗 编辑:程序博客网 时间:2024/06/06 05:54

     快速排序的思想不知道怎么描述,那么就直接贴代码吧。做个笔记。

  

public class Quicksort {public static void main(String[] arg){int[] a={45,3,89,41,34,99,3,55,9,36};sort(a,0,a.length-1);for(int i=0;i<a.length;i++){System.out.print(a[i]+"  ");}}static void sort(int[] a,int left,int right){if(left>=right)return;if(left<0||right>a.length-1)return;int i=left;int j=right;int temp=a[left];//下面这段代码要特别注意数组溢出的问题while(i<j){//要注意,j>i,不能加等号,加了等号,再加个J--,j就小于i了。然后数组就会有溢出问题while(a[j]>=temp&&j>i){j--;}//判断代码走到这是因为a[i]>=temp或者还是j>i if(j>i){a[i]=a[j];i++;}while(a[i]<=temp&&i<j){i++;}if(i<j){a[j]=a[i];j--;}}//记得写下面这句,忘了把temp里面的值填回数组让我郁闷了一阵a[i]=temp;sort(a,left,i-1);sort(a,i+1,right);   }}

0 0
原创粉丝点击