初步的起泡排序法

 上学的时候学的知识,刚一毕业又还给了老师,这段时间失业,所以决定把数据结构重新学习下。

起泡排序,很简单,就是需要排序的队列里,一个个“冒”出来,然后给它们换位置;

 

第一步,建立一个排序的接口类Sorter,在Sorter中有个方法sort实现排序;

package com.project;

public interface Sorter {
   
    public void sort(Sequence s);


}

 

第二步,实现这个接口,类Sort_Bubblesort,在Sort_Bubblesort具体实现sort;

package com.project;

public class Sort_Bubblesort implements Sorter {

 

    //一个比较的方法

    private Comparator c;
   
    public Sort_Bubblesort()
    {
        c = new Comparator();
    }
   
    public Sort_Bubblesort(Comparator comparator)
    {
        c=comparator;
    }
   
    public void sort(Sequence s)
    {

       int n=s.getSize();
        for(int i=0;i<n;i++)
            for(int j=0;j<n-i-1;j++)
            {  //可以对此出进行调整,从而对升(降)排序
                if(c.compare(s.getAtRank(j),s.getAtRank(j+1))>0)
                {
                    int temp=s.getAtRank(j);
                    s.replaceAtRank(j,s.getAtRank(j+1));
                    s.replaceAtRank(j+1,temp);
                }
            }
    }
}

 

其它,在类Bubblesort使用的两个方法类,Comparator和Sequence的具体代码如下:

Comparator.java

 

package com.project;

public class Comparator {

    public Comparator()
    {
    }
   
    public int compare(int valueA,int valueB)
    {
        if(valueA>valueB)
            return 1;
        else
            return 0;
    }
}

 

Sequence.java

package com.project;

public class Sequence {

    private int[] args;
   
    public Sequence()
    {
    }
   
    public Sequence(int[] putArg)
    {
        args=putArg;
    }
   
    public int getSize()
    {
        if(args!=null)
            return args.length;
        else
            return -1;
    }
   
    public int getAtRank(int position)
    {
        if(position<getSize())
            return args[position];
        else
            return -1;
    }
   
    public void replaceAtRank(int rePosition,int value)
    {
        args[rePosition]=value;
    }
   
    public void outputSystem()
    {
        for(int i=0;i<getSize();i++)
            System.out.println(args[i]);
    }
}

 

抄书上的一句话,利用起泡排序酸法对长度为n的序列进行排序,至多经过n轮扫描交换,所有元素都将就位,既实现完全有序。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值