zoukankan      html  css  js  c++  java
  • 循环有序数组查找

    1.请实现以下函数int indexOf(int[] array, int target), 给定一个循环有序的数组。请在这个数组中找到指定元素,找到的话返回小标,没有找到返回-1.该数组的特点是它是一个单调递增的数组向右循环移位形成的。举例说明,原数组是[4,8,13,20,23,34,41,52]经过右循环移位后形成的数组可能是[23,34,41,52,4,8,13,20],也可能是[4,8,13,20,23,34,41,52]

    实现代码一:(遍历)

    import java.util.Scanner;
    
    public class LoopArray {
        public static void main(String[] args){
            int[] array = {4,8,13,20,23,34,41,52};
            Scanner in = new Scanner(System.in);
            int num = in.nextInt();
            System.out.print("the number " + num + " is in array ?");
            System.out.println(" ");
            if(loopArrayFind(array, num) == -1){
                System.out.println("NO!");
            }else if((loopArrayFind(array, num) >= 0)&&(loopArrayFind(array, num) < array.length)){
                System.out.println("YES!");
            }else{
                System.out.println("Error!");
            }        
        }
        public static int loopArrayFind(int[] array, int num){
            int flag = 0;
            for(int i = 0; i < array.length; i++){
                if(array[i] == num){
                    flag = i;
                    break;
                }else
                    flag = -1;
            }
            return flag;
        }
    }

    实现代码二:(遍历+不使用break)

    import java.util.Scanner;
    
    public class LoopArray {
        public static void main(String[] args){
            int[] array = {4,8,13,20,23,34,41,52};
            Scanner in = new Scanner(System.in);
            int num = in.nextInt();
            System.out.print("the number " + num + " is in array ?");
            System.out.println(" ");
            if(loopArrayFind(array, num) == -1){
                System.out.println("NO!");
            }else if((loopArrayFind(array, num) >= 0)&&(loopArrayFind(array, num) < array.length)){
                System.out.println("YES!");
            }else{
                System.out.println("Error!");
            }        
        }
        public static int loopArrayFind(int[] array, int num){
            int flag = -1;
            for(int i = 0; i < array.length; i++){
                if(array[i] == num){
                    flag = i;
                }else;
            }
            return flag;
        }
    }

    实现代码三:(QuickSort)

    import java.util.Scanner;
    
    public class LoopArray {
        public static void main(String[] args){
            int[] array = {23,34,41,52,4,8,13,20};
            Scanner in = new Scanner(System.in);
            int num = in.nextInt();
            System.out.print("the number " + num + " is in array ?");
            System.out.print("  ");
            if(loopArrayFind(array, num) == -1){
                System.out.println("NO!");
            }else if((loopArrayFind(array, num) >= 0)&&(loopArrayFind(array, num) < array.length)){
                System.out.println("YES!");
            }else{
                System.out.println("Error!");
            }        
        }
        public static int loopArrayFind(int[] array, int num){
            int flag = -1;
            int low = 0;
            int high = array.length;
            int middle = (low+high)/2;
            while(middle > 0){
                if(num == array[middle]){
                    flag = middle;
                }else if(num < array[middle]){
                    if(num <= array[middle-1]){
                        if(num == array[middle-1]){
                            flag = middle-1;
                        }else{
                            high = middle - 1;
                        }
                    }else;
                }else{
                    if(middle < array.length){
                        if(num == array[middle+1]){
                            flag = middle+1;
                        }else{
                            low = middle+1;                    
                        }
                    }else;
                }
                middle = (low + high)/2;
            }
            return flag;
        }
    }
  • 相关阅读:
    Selenium简单测试页面加载速度的性能(Page loading performance)
    Selenium Page object Pattern usage
    Selenium如何支持测试Windows application
    UI Automation的两个成熟的框架(QTP 和Selenium)
    分享自己针对Automation做的两个成熟的框架(QTP 和Selenium)
    敏捷开发中的测试金字塔(转)
    Selenium 的基础框架类
    selenium2 run in Jenkins GUI testing not visible or browser not open but run in background浏览器后台运行不可见
    eclipse与SVN 结合(删除SVN中已经上传的问题)
    配置Jenkins的slave节点的详细步骤适合windows等其他平台
  • 原文地址:https://www.cnblogs.com/RunForLove/p/4359628.html
Copyright © 2011-2022 走看看