您的位置:首页 > 职场人生

java面试常用的排序与查找

2017-07-25 11:52 246 查看
//写一个方法,然后对一个int数组进行选择排序

    

    public static void chooseSort(int[] arr){

        

        for(int i=0;i<arr.length-1;i++){//控制的是选定的位置

            for(int j=i+1;j<arr.length;j++){//内循环控制的是每一次比较过程

                if(arr[i]>arr[j]){//当前选定位置值与后面所有值比较

                    /*int temp=arr[i];

                    arr[i]=arr[j];

                    arr[j]=temp;*/

                    changeTemp(arr,i,j);

                }

            }

            bianLiArray(arr);

        }

    }

    

    public static void bianLiArray(int[] arr){

        for(int a:arr){

            System.out.print(a+"  ");

        }

        System.out.println();

    }

    //冒泡排序

    public static void bubbleArray(int[] arr){

        

        for(int i=1;i<arr.length;i++){//控制的是第几次比较

            for(int j=0;j<arr.length-i;j++){//来控制每次比较过程

                if(arr[j]>arr[j+1]){

                    /*int temp=arr[j];

                    arr[j]=arr[j+1];

                    arr[j+1]=temp;*/

                    changeTemp(arr,j,j+1);

                }

                

            }

            bianLiArray(arr);
        }

}

/*折半查找算法

    前提---查找的数组一定是一个有序的数组

    目的---查找一个数组中是否含有某一个值

    优点:减少比较的次数*/

思路://定义三个值

    /*

    <!-- 数组中位值在小智min=0;

    数组中最大值max=arr.length-1;

    在定义一个中间值mid=0;

    循环条件

        min<max

        while<min<=max){

        mid=(min+max)/2;

        if(min>key){

            max=mid-1;

        else if(arr[min]<key)

            min=mid+1;

        return max;

     -->*/

public static int halfserach(int[] arr,int key){

        int min=0;//位置最小值

        int max=arr.length-1;//位置的最大值

        int mid=0;

        while(min<=max){

            mid=(min+max)/2;

            if(arr[mid]>key)

                max=mid-1;    

            

            else if(arr[mid]<key){

                min=mid+1;

            }else{

                return mid;

            }

        }

        

        //return -1;

        return mid;

    }

       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: