简单的二分法排序

简单的二分法排序提起排序,记忆最深刻的就是冒泡法排序,因为这是程序员入门必学的第一个排序算法。但是冒泡法需要不断地遍历数组,不断地遍历数组,需要消耗更多的时间。相对于冒泡法,二分法排序的效率相对的更高一些。publicclassBisection{publicstaticvoidmain(String[]args){Integer[]a={74,81,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

提起排序,记忆最深刻的就是冒泡法排序,因为这是程序员入门必学的第一个排序算法。

但是冒泡法需要不断地遍历数组,不断地遍历数组,需要消耗更多的时间。

相对于冒泡法,二分法排序的效率相对的更高一些。

public class Bisection {

    public static void main(String[] args) {

        Integer[] a= {74,81,47,77,48,3,40,34,15,67,4,31,41,54,98,27,84,37,75,38,24,72,9,45,77,43,11,2};
        a=new Bisection().order(a);
        for(int i=0;i<a.length;i++)
        {

            System.out.println(a[i]);
        }
    }
    
    public Integer[] order(Integer[] a) {

       //正序为true(默认),倒序为false
        return order(a,true);
    }
    
    
    public Integer[] order(Integer[] a,boolean b) {

        int min,max,middle=0,temp,length=a.length;
        for(int j=1;j<length;j++)
        {

            min=0;
            max=j-1;
            temp=a[j];
            while(min<=max) {

                middle=(min+max)/2;

                //b的作用:改变表达式的布尔值,从而控制排列顺序
                if(a[middle]<temp==b) {

                        min=middle+1;
                }else
                {

                        max=middle-1;
                }
            }
            
            for(int i=j;i>min;i–)
            {

                a[i]=a[i-1];
            }
            
            a[middle]=temp;
        }
        return a;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234855.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于数据驱动的发电设备在线预警研究

    基于数据驱动的发电设备在线预警研究

    2021年11月22日
    53
  • matlab中@的用法[通俗易懂]

    matlab中@的用法[通俗易懂]@是用于定义函数句柄的操作符。函数句柄既是一种变量,可以用于传参和赋值;也是可以当做函数名一样使用。举例:sin是matlab中的一个函数,但sin只是函数名,还不是函数句柄,不可以用于传参。f=@sin;这行代码定义了一个函数句柄,变量名是f。这样就可以当做参数传递了(这就是上面代码中的意义所在),而且还可以跟sin函数按相同的语法规则使用:g=f;%g也是函数句柄,其“值”和f一样…

    2022年7月17日
    15
  • Laravel自定义 封装便捷返回Json数据格式引用

    Laravel自定义 封装便捷返回Json数据格式引用

    2021年11月7日
    45
  • JWT原理详解_电磁感应现象原理

    JWT原理详解_电磁感应现象原理1.COOKIE使用和优缺点1.1cookie原理:用户名+密码cookie是保存在用户浏览器端,用户名和密码等明文信息1.2session使用原理session是存储在服务器端的一段字符串,相当于字典的key1.用户向服务器发送用户名和密码。2.验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。3.服务器向用户返回session_id,session信息都会写入到用户的Cookie。4.用户的每个后续请求都将通过在Cookie中取出session_id传给

    2022年4月19日
    48
  • 修改apache服务器端口号_apache修改端口号

    修改apache服务器端口号_apache修改端口号一、修改/etc/httpd/conf/httpd.conf文件中的监听端口号Listen80把80修改成需要的号,如8000,即Listen8000二、查看SELinux下http相关端口#semanageport-l|grephttphttp_cache_port_ttcp3128,8080,8118,10001-10010http_cache_po

    2025年11月13日
    6
  • 转引的注释怎么写_java注释模板

    转引的注释怎么写_java注释模板如题,使用idea的时候,因为它预定义的注释样式不尽人意,但还好的是支持自定义模板。自定义模板File->Settings图一然后搜索LiveTemplates,之后添加一个自己的模板组,我的是myGroup,然后是添加自己的快速注释快捷键等等,关于如何添加这个的过程大家可以在网上搜到很多,我就不多说了。敲黑板,重点来了,对于新手来说,如何配置下面这部分无…

    2022年9月28日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号