最新消息:宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取

用Java实现排序算法一:插入算法

Java admin 22浏览 0评论

所谓的插入算法,就是将数组中的每一个数单列出来,并对它之前的数进行比较,(这里如不说明,均按照从小到大的顺序排列。)如果当前的数小于它前面的数,则两个数调换位置,为了方便大家理解,我们以int[] a = {4,2,3,1}为例:

首先,我们不能从4开始,因为4是第一个,它的前面没有数了,所以从2开始,将2拿出来之后,赋值给一个临时变量:temp,之后让2与它之前的数进行比较,因为只有一个4,所以很明显,需要将2与4调换一下位置,我们只需要将a[1]=a[0],a[0]=temp就可以了,这样就实现了第一次排序,经过这次排序,我们的数组a成为了:{2,4,3,1}。

接下来,开始第二次循环,temp变成了3,让3与它之前的数4进行比较,所以我们需要将a[1]与a[2]调换位置,方法为:a[2]=a[1],a[1]=temp,当然,这里有一个问题,当3与4比较之后,3是否还要和2比较,答案是肯定的,所以这里应该使用一个for循环,用来循环比较,从右向左,这样一来,我们的算法就完美了。

具体代码如下:

    int[] a = {4,2,3,1};
    for(int i = 1;i<a.length;i++){
        int temp = a[i];
        int j = 0;
        for(j=i-1;j>=0;j--){
            if(a[j]>temp){
                a[j+1]=a[j];
            }
            if(a[j+1]!=temp){
                a[j]=temp;
            }
        }
    }

    for(int i = 0;i<a.length;i++){
        System.out.print(a[i]);
    }

转载请注明:网红IT » 用Java实现排序算法一:插入算法

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址