java简单的二分法排序

摘要:
二分法排序的思想:数据元素应该按顺序排序。对于给定的x值,从序列的中间开始。如果当前位置值等于x,则搜索成功;如果x小于当前位置值,则搜索数字序列的前半部分;如果x大于当前位置值,则继续搜索数字序列的后半部分,直到找到为止。详细信息:1.二分法搜索,前提是数组必须按顺序排序,否则无法执行搜索;2.数组中元素的值不能重复;3.注意if语句的判断方法和处理语句。

二分法排序的思路数据元素要按顺序排列,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功;若 x 小于当前位置值,则在数列的前半段中查找;若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止。

细节:
1、二分法查找,前提是数组必须进行顺序排序,否则查找无法进行;
2、数组中元素的值不可以重复;
3、注意if语句的判定方法及处理语句。
 
代码如下:当min>max时说明找不到,因为元素重合,min和max代表元素下标。通过下标取值来比较,来查找。
class Demo 
{
    public static void main(String[] args) 
    {
        
        //二分法 : 前提 : 数组要排序好

        int[] arr = {1,2,3,4,5,6};
        int num = 5;

        int max = arr.length-1;
        int min = 0;
        int mid = (max + min) / 2;

        while(true){
        
            if(num > arr[mid]){
            
                min = mid +1;

            }else if (num < arr[mid])
            {

                max = mid-1;
            }else {
                
                System.out.println("找到了:"+mid);
                break;
            }

            //没有找到
            if(min > max){
                
                System.out.println("没有找到");
                break;
            }
            //重新设置中间值
            mid = (max + min)/2;
        
        }

    }

免责声明:文章转载自《java简单的二分法排序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇kettle 连接Hadoop 遇错Hibernate环境搭建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

非线性方程(组):一维非线性方程(一)二分法、不动点迭代、牛顿法 [MATLAB]

1. 二分法(Bisection) 1) 原理   【介值定理】 对于连续的一元非线性函数,若其在两个点的取值异号,则在两点间必定存在零点。   【迭代流程】 若左右两端取值不同,则取其中点,求其函数值,取中点和与中点取值异号的端点构成新的区间(其中必有零点)。进行下一次迭代。 2) 实现二分求根算法   使用MATLAB实现二分法代码如下。捕捉异常主要...

Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

Java 常用排序算法/程序员必须掌握的 8大排序算法  本文由网络资料整理转载而来,如有问题,欢迎指正!  分类:  1)插入排序(直接插入排序、希尔排序)  2)交换排序(冒泡排序、快速排序)  3)选择排序(直接选择排序、堆排序)  4)归并排序  5)分配排序(基数排序)  所需辅助空间最多:归并排序  所需辅助空间最少:堆排序  平均速度最快:快...

二分法其实很简单,为什么老是写不对!!

文章持续更新,微信搜索「代码随想录」第一时间围观,本文GitHub:https://github.com/youngyangyang04/TechCPP已经收录,里面有更多干货等着你,欢迎Star! 相信很多人对二分法是又爱又恨,爱是在于它思想简单,效率确实高, 恨是恨在为什么总是写不对呢 二分查找涉及的很多的边界条件,逻辑比较简单,就是写不好 甚至有的同...

二分法:CF371C-Hamburgers(二分法+字符串的处理)

                                                                                                                     Hamburgers Time Limit:1000MS     Memory Limit:262144KB     64b...

程序员必知3大查找(转)

  三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表(以后谈)       一、顺序查找的基本思想: 从表的一端开始,顺序扫描表,依次将扫描到的结点关键字和给定值(假定为a)相比较,若当前结点关键字与a相等,则查找成功;若扫描结束后,仍未找到关键字等于a的结点,则查找失败。   说白了就是,从头到尾,一个一个地比,找着相同的就成功,找不到...