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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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]+",");
                        }
                       
                }
               
        }
}

2 个回复

倒序浏览
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]+",");
                        }
                       
                }
               
        }

}
回复 使用道具 举报
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;
        }
       

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马