简单的二分法排序

简单的二分法排序提起排序,记忆最深刻的就是冒泡法排序,因为这是程序员入门必学的第一个排序算法。但是冒泡法需要不断地遍历数组,不断地遍历数组,需要消耗更多的时间。相对于冒泡法,二分法排序的效率相对的更高一些。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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python的缩进规则是什么意思_python什么情况下需要缩进

    python的缩进规则是什么意思_python什么情况下需要缩进一般的语言都是通过{}或end来作为代码块的标记,而Python则是通过缩进来识别代码块的。对于Python的这种“缩进”风格,喜欢它的人说这是一种乐趣;不喜欢它的人说这是一门需要卡尺的语言,因为需要使用“游标卡尺”去测量每行代码的缩进。不管怎么样,Python的开发者有意让违反了缩进规则的程序不能通过编译,以此让程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出,而非使…

    2022年10月13日
    1
  • springboot介绍一下_SpringBoot打包

    springboot介绍一下_SpringBoot打包一、SpringBoot和SpringMVC的关系SpringBoot是SpringMVC的升级版SpringBoot的特点:化繁为简,简化配置微服务->SpringCloud->SpringBoot二、前置知识利用maven构建项目Spring注解RESTfulAPI

    2022年9月23日
    4
  • FT到底值多少钱——再议Fcoin机制及估值模型[通俗易懂]

    一、写在前面两星期前,「朋克」写了一篇关于Fcoin的文章——《FcoinToken(FT)——数字货币交易所的颠覆者,还是无情镰刀的收割者》,彼时全网整体舆论偏负面,称FT为“资金盘”、“传销币”、“庞氏骗局”屡屡不绝。当时「朋克」整体对FT做了较为客观的中性偏正面评价。 仅仅一个星期之后,随着张健的“以德报怨”,在Fcoin上线bnb之后,舆论迅速反转,整体舆论从负面慢慢变…

    2022年4月16日
    58
  • .java编译成.class 与 .class反编译成.java

    .java编译成.class 与 .class反编译成.java.java编译成.class 与 .class反编译成.java

    2022年4月23日
    105
  • AWStats简介

    AWStats简介安装[url]http://sourceforge.net/projects/awstats/[/url]下载安装包后:GNU/Linux:tarzxfawstats-version.tgzawstats的脚本和静态文件缺省都在wwwroot目录下:将cgi-bin目录下的文件都部署到cgi-bin/目录下:/home/apache/cgi-bin/awstats/…

    2022年7月16日
    17
  • 在毕设中学习02——numpy多维数组的切片,形态变化,维度交换

    在毕设中学习02——numpy多维数组的切片,形态变化,维度交换2022.5.21文章目录关于matplotlib.pyplotcv2工具python课本学习构建三维数组,并按照指定维度输出生成一组随机数,摆放为指定矩阵形式Python中range(start,stop,步长)生成指定范围,指定步长的一组数多维数组切片——过滤信息多维矩阵的维度顺序变换多维矩阵的切片多维矩阵的形态变化关于matplotlib.pyplotcv2工具两篇博客的学习文献学习python课本学习构建三维数组,并按照指定维度输出import numpy as np#a=np.

    2022年8月11日
    5

发表回复

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

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