黑马程序员技术交流社区

标题: 选择排序,冒泡排序,二分查找 [打印本页]

作者: 小牛想成为大牛    时间: 2016-11-7 00:26
标题: 选择排序,冒泡排序,二分查找
1. 冒泡排序  循环数组length次,每一次都两两比较相邻的数,先把最大值置于最后一位
        public static void main(String[] args) {
                int[] arr={1,3,5,100,3,6,2};
                printArray(maopao(arr));
        }
        public static int[] maopao(int [] arr){
                int temp;
                for(int i=0;i<arr.length-1;i++){
                        for(int x=0;x<arr.length-1-i;x++){
                                if(arr[x]>arr[x+1]){
                                        temp=arr[x+1];
                                        arr[x+1]=arr[x];
                                        arr[x]=temp;
                                }
                        }
                }
                return  arr;
        }
        public static void  printArray(int[] arr){
                System.out.print("[");
                for(int i=0;i<arr.length;i++){
                        if(i==arr.length-1){
                                System.out.print(arr[i]+"]");
                        }else {
                                System.out.print(arr[i]+",");
                        }
                       
                }
               
        }
}
作者: 小牛想成为大牛    时间: 2016-11-7 00:29
2. 选择排序:直接依次将各位上的值变换到应该在的位置
           :先取第一位,将其与其他位比较,直到第一位为最小值
          
        public static void main(String[] args) {
                int[] arr={1,3,5,100,3,6,2};
                printArray(sort(arr));
        }
        public static int[] sort(int [] arr){
                int temp;
                for(int i=0;i<arr.length-1;i++){
                        for(int x=i+1;x<arr.length;x++){
                                if(arr[i]>arr[x]){
                                        temp=arr[x];
                                        arr[x]=arr[i];
                                        arr[i]=temp;
                                }
                        }
                }
                return  arr;
        }
        public static void  printArray(int[] arr){
                System.out.print("[");
                for(int i=0;i<arr.length;i++){
                        if(i==arr.length-1){
                                System.out.print(arr[i]+"]");
                        }else {
                                System.out.print(arr[i]+",");
                        }
                       
                }
               
        }

}
作者: 小牛想成为大牛    时间: 2016-11-7 00:30
3. 二分法查找
        public static void main(String[] args) {
                int[] arr={11,22,33,40,44,55,66};
                System.out.println(erFen(arr, 33));
        }
        public static int erFen(int[] arr,int value){
                int max=arr.length-1;
                int min=0;
                int mid=(max+min)/2;
                        while(arr[mid]!=value){
                               
                                if(arr[mid]>value){
                                        max=mid-1;
                                }
                                else if (arr[mid]<value) {
                                        min=mid+1;
                                }
                                mid=(max+min)/2;
                                if(min>max){
                                        return -1;
                                }
                        }
                        return mid;
        }
       

}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2