黑马程序员技术交流社区

标题: 数组中的查找与排序 [打印本页]

作者: 七色★碎羽    时间: 2015-9-10 23:06
标题: 数组中的查找与排序
冒泡查找

public class Demo3 {
        public static void main(String[] args) {
                int[] arr={12,56,45,22,46,89};
                bubblesort(arr);
                printArray(arr);
        }
        public static void bubblesort(int[] arr) {
               
                for(int x=0;x<arr.length;x++){
                        for (int y=0;y<arr.length-x-1;y++){
                                if(arr[y]>arr[y+1]){
                                        int temp=arr[y];
                                        arr[y]=arr[y+1];
                                        arr[y+1]=temp;
                                }
                        }
                }
        }
        public static void printArray(int[] arr){
                System.out.print("[");
                for(int i=0;i<arr.length;i++){
                        if(i==arr.length-1){
                                System.out.println(arr[i]+"]");
                        }else
                        System.out.print(arr[i]+",");
                }
        }
}



选择排序

public class Demo4 {
        public static void main(String[] args) {
                int[] arr={12,56,45,22,46,89,};
                selectsort(arr);
                printArray(arr);
        }
        public static void selectsort(int[] arr){
                for (int x=0;x<arr.length;x++){
                        for(int y=x+1;y<arr.length;y++){
                                if(arr[x]>arr[y]){
                                        int temp=arr[x];
                                        arr[x]=arr[y];
                                        arr[y]=temp;
                                }
                        }
                }
        }
        public static void printArray(int[] arr){
                System.out.print("[");
                for(int i=0;i<arr.length;i++){
                        if(i==arr.length-1){
                                System.out.println(arr[i]+"]");
                        }else
                        System.out.print(arr[i]+",");
                }
        }
}

,二分查找
public class Demo5 {
        public static void main(String[] args) {
                int[] arr={11,35,78,89,90,93,99};
       
                int a=binarySearch(arr,89);
                System.out.println(a);
        }
        public static int binarySearch(int[] arr,int x) {

                int min =0;
                int max=arr.length-1;
                int mid=0;
                while(min<=max){
                        mid=(min+max)/2;
                        if(arr[mid]<x){
                                min=mid+1;
                        }else if(arr[mid]>x){
                                max=mid-1;
                        }else {
                                return mid;
                        }
                }
                return -1;
        }
}






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