zoukankan      html  css  js  c++  java
  • 【Java学习日记】编程题整理-8.01 二分查找法

    冒泡排序

    1.数列必须是顺序排列好的

    2.在判断首末位元素的时候要考虑到是否相等的情况(数组如果只有一个元素)

    import java.util.Arrays;

    import java.util.Scanner;

        public class MyTest {
          public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            int[] list = {56,64,84,13,4,68,12};                //当然这个地方可以写成由用户从控制台输入,但图方便就采用这种直接给出的方式了
            System.out.println("Enter the number you want to find ");
            int n= input.nextInt();
            Arrays.sort(list);                                         //把数组的元素从小到大排列好
            System.out.println(Arrays.toString(list));  //显示排列好之后的数列
            System.out.println("The flag is " + binarySearch(list,n));  
          }

          public static int binarySearch(int list[],int i) {
            int low=0,high = list.length-1;
            while(high >= low) {        //在调试的时候花时间最多的是找这个等号,如果不判断相等的情况,查找首位和末位的元素会出现不正确
              int mid = (high+low)/2;
              if(i<list[mid]) {
                high = mid -1;
              }
              else if(i == list[mid]){
                return mid;
              }
              else
             low = mid + 1;
            }
            return -1 -low;          //个人觉得返回-1也是可以的
          }

    }


    啊啊啊啊,因为近几日为情所困今日犹然,所以学习的进度被落下了很多。明天一定要复现插入排序和选择排序。数组就到这里先告一段落。希望明天能复习到对象和类,时间太久都已经快忘光了。就像从头开始学一样。啊啊啊。

  • 相关阅读:
    C#练习3
    C#练习2
    C#环境变量配置及csc命令详解(转自cy88310)
    建站流程(转)
    C#练习
    程序竞赛1
    排序算法
    输出有向图的邻接矩阵
    C#高效分页代码(不用存储过程)
    存储过程详解
  • 原文地址:https://www.cnblogs.com/JodyJoy1201/p/13417402.html
Copyright © 2011-2022 走看看