美文网首页
java算法之快速排序

java算法之快速排序

作者: 上下而求索 | 来源:发表于2018-11-13 21:13 被阅读0次
    public class QuickSort {
    
        
        
        public static void main(String[] args) {
            
            int[] list= {49,38,65,97,76,13,27};
            
            quickSort(list, 0, list.length-1);
        }
        
        public static void quickSort(int []arr,int low,int high) {
            
            
            if(low<high) {
                
                int mid=partition(arr, low, high);
                //左边的进行分区
                quickSort(arr, low, mid-1);
                
                //右边的进行分区
                quickSort(arr, mid+1, high);
            }
        }
        
        
        public static int partition(int[]array,int low,int high) {
            
            //设置两个变量  i   j    i=0    j=high
            
            //以数组的第一个元素作为关键字
            int key=array[low];  
            
            int i=low,j=high;
            if(low<high) {
                
                while(i<j) {
                    
                    //由J开始向前搜索
                    while(i<j&&array[j]>=key) {
                        
                        j--;
                    }
                    if(i<j) {
                        
                        array[i]=array[j];
                        i++;
                    }
                    
                    //从i 开始搜索
                    while(i<j&&array[i]<=key) {
                        
                        i++;
                    }
                    if(i<j) {
                        
                        array[j]=array[i];
                        j--;
                    }
                }
                array[i]=key;
                
                System.out.println("每次排序的结果"+Arrays.toString(array));
            }
            
            return i;
        }
    }
    

    相关文章

      网友评论

          本文标题:java算法之快速排序

          本文链接:https://www.haomeiwen.com/subject/rllrfqtx.html