冒泡排序

排序的过程中,前一个和后一个比较,前面大就放到后面去,然后索引更新到原后一个(也就是+1啦),原后一个与原后一个的后一个比较。。。
然后一趟排序下来,最大的就被放到数组最后面了,最大的定下来以后排序就不必带上她了(排序范围-1),反正他最大放最后

package sort;

/*
 * 冒泡排序
 * 两两比较,小的放前,大的放后,一趟排序后,最大的放到最后
 */
public class bubbleSort
{
    private int [] array = { 9 , 4 , 2 , 5 , 6 , 7 , 8 };
    private int maxSize ; //数组长度
    private boolean isSwap;//用来标记一趟排序中,是否交换过数据,没有交换过说明数组已经是有序的

    public bubbleSort ()
    {
        maxSize = array.length ;
    }

    public void sort ()
    {
        //用来指定循环的范围   maxSize-1 代表最大数组下标
        for ( int i = maxSize - 1 ; i > 0 ; i-- )
        {
            isSwap = false ;
            //排序把小的放到前面,大的放后面,一趟下来,最大的放到最后了
            for ( int j = 0 ; j < i ; j ++ )
            {
                if ( array [j] > array [j+1] )
                {
                    swap ( j , j+1 ) ;
                    isSwap = true ;
                }
            }

            //如果isSwap == false,代表没有交换,说明顺序提前排好了,直接退出
            if ( !isSwap )
            {
                break ;
            }

        }
    }

    //交换元素,形参放的是数组下标
    public void swap ( int i , int j )
    {
        int temp = array [i];
        array [i] = array [j] ;
        array [j] = temp ;
    }

    //遍历
    public void display ()
    {
        for ( int i = 0 ; i < array.length ; ++i )
        {
            System.out.print ( array[i] + " ");
        }
        System.out.println ();
    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值