A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Amu 中级黑马   /  2015-6-6 23:27  /  367 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package Test1_1;
/**
* 快速排序:体现的是一种分治的思想,通过基准值和指针移动,将数组划分为两块区域,比基准值小的和比基准值大的,然后继续递归划分
* @author thinkpad
*
*/
public class QuickSort {
        public static void main(String[] args) {
                int[] arr={12,44,34,-2,345,68};
                printArray(arr);//排序前
                quickSort(arr,0,arr.length-1);
                printArray(arr);//排序后
        }

        public static void quickSort(int[] arr, int left, int right) {
                if(left<right){
                        int i=left;
                        int j=right;
                        int key=arr[left];
                        while(i<j){
                                while(arr[j]>key){
                                        j--;
                                }
                                swap(arr,i,j);
                                while(arr[i]<key){
                                        i++;
                                }
                                swap(arr,i,j);
                        }
                        quickSort(arr,left,i-1);
                        quickSort(arr,i+1,right);
                }
               
        }

        public static void swap(int[] arr, int i, int j) {
                // TODO Auto-generated method stub
                int temp=arr[i];
                arr[i]=arr[j];
                arr[j]=temp;
               
        }

        public static void printArray(int[] arr) {
                // TODO Auto-generated method stub
                System.out.print("[");
                for(int i=0;i<arr.length;i++){
                        if(i!=arr.length-1)
                                System.out.print(arr[i]+",");
                        else
                                System.out.println(arr[i]+"]");
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马