无标题文章

public class QuickSort {    
    public static void quickSort(int arr[],int _left,int _right){        
        int left = _left;        
        int right = _right;        
        int temp = 0;       
        //待排序的元素至少有两个的情况
        if(left <= right){            
            //待排序的第一个元素作为基准元素
            temp = arr[left]; 
            //从左右两边交替扫描,直到left = right
            while(left != right){                
                while(right > left && arr[right] >= temp) 
                    //从右往左扫描,找到第一个比基准元素小的元素
                    right --;  
                //找到这种元素arr[right]后与arr[left]交换
                arr[left] = arr[right];  

                while(left < right && arr[left] <= temp)                           
                    //从左往右扫描,找到第一个比基准元素大的元素
                    left ++; 
                //找到这种元素arr[left]后,与arr[right]交换
                arr[right] = arr[left];  

            }            
            //基准元素归位
            arr[right] = temp;   
            //对基准元素左边的元素进行递归排序
            quickSort(arr,_left,left-1);  
            //对基准元素右边的进行递归排序
            quickSort(arr, right+1,_right);  
        }        
    }    
    public static void main(String[] args) {        
        int array[] = {10,5,3,1,7,2,8};
        System.out.println("排序之前:");        
        for(int element : array){
            System.out.print(element+" ");
        }
        
        quickSort(array,0,array.length-1);

        System.out.println("\n排序之后:");        
        for(int element : array){
            System.out.print(element+" ");
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容