• 【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也是可以的
          }

    }


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

  • 相关阅读:
    spring定时器的cronexpression表达式
    Mybatis Generator的model生成中文注释,支持oracle和mysql(通过实现CommentGenerator接口的方法来实现)
    ORA-12505, TNS:listener does not currently know of SID given in connect desc
    The Network Adapter could not establish the connection
    Shell中的>/dev/null 2>&1 与 2>&1 >/dev/null 与&>/dev/null 的区别
    大道至简、大智若愚—GO语言最佳详解实践
    rsync使用详解
    一次TIME_WAIT和CLOSE_WAIT故障和解决办法
    Go的CSP并发模型实现:M, P, G
    如何优雅打印nginx header和body
  • 原文地址:https://www.cnblogs.com/JodyJoy1201/p/13417402.html
Copyright © 2020-2023  润新知