[置顶] Android 面试那些事之算法题

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

 

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;
    }

}



邮箱[email protected]

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



你可能感兴趣的:(android,面试)