现在的位置: 首页 > 移动开发 > 正文

Android 面试那些事之算法题

2019年09月13日 移动开发 ⁄ 共 806字 ⁄ 字号 评论关闭

一、冒泡算法:(经典考题,你必须会)

 

public class BubbleTest

{
    /**
     * @param args
     */
    public static void main(String[] args) {
        
        int array[]={33,22,15,89,55};
        sort(array);
        
        for(int i=0;i<array.length;i++)
        {
            System.out.println(array[i]);
        }
        
        int ret=binaryFind(array,2);
        System.out.println("------------:"+ret);    
    }
    
    /**
     * 冒泡算法
     * @param array 无序数组
     */
    public static void sort(int []array)
    {
        for(int i=0;i<array.length-1;i++)
        {
            for(int j=0;j<array.length-i-1;j++)
            {
                if(array[j]>array[j+1])
                {
                    int tmp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=tmp;
                }
            }
        }
    }

    
    /**
     * 二分查找
     * @param array 升序排列的数组
     * @param value
     * @return
     */
    public static int binaryFind(int []array,int value)
    {
        int low=0;
        int height=array.length-1;
        
        while(low<=height)
        {
            int middle=(low+height)/2;
            if(array[middle]<value)
            {
                low=middle+1;
            }
            else if(array[middle]>value)
            {
                height=middle-1;
            }
            else
            {
                return middle;
            }
        }
        return -1;
    }

}


邮箱zz7zz7zz@163.com

微博http://weibo.com/u/3209971935

抱歉!评论已关闭.