Java冒泡排序算法

## 数组之冒泡排序

1、算法思想

    对比相邻的元素,如果满足条件就交换位置,把较小的值放在数组的前面,大的放在数组后面,这样较小的元素就像气泡一样
从底部上升到顶部。

2、算法实例

	冒泡排序由双层循环实现,外层循环控制排序的轮数,一般为要排序的数组长度减1,因为最后一次循环只剩一下一个元素,不
需要再进行相邻元素比较,即可完成排序;内层循环则用于对比相邻两个元素的大小,来确定是否需要交换位置。对比的次数也随
着轮数的增加而减少,因为每一轮的冒泡会把最大的放在最后面。
	数组有5个元素的排序过程如图所示:

第一轮循环把最大的31放在了最后面,比31小的元素向前移动,类似于气泡上升,第二轮循环31就不再进行比较,因为它已经被确认为最大,其他元素依次跟相邻的元素进行比较,最后得到除了31之外的最大值23放在31的前一个位置。其他循环将以此类推,继续排序。

3、程序实现

public class Bubblesort {
    public static void main(String[] args) throws Exception {
        //冒泡排序
        int[] array = {15,4,31,23,7};
        //创建冒泡排序的对象
        Bubblesort sorter = new Bubblesort();
        //调用排序方法将数组排序
        sorter.sort(array);
    }
    /**
     * 冒泡排序
     * @param array  要排序的数组
     */
    public void sort(int[] array){
        for(int i = 1;i<array.length;i++){
            //比较相邻两个元素,较大的数往后冒泡
            for(int j = 0;j<array.length-i;j++){
                if(array[j]>array[j+1]){
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
        System.out.println("从小到大排序后的结果为:");
        showArray(array);
    }
    /**
     * 显示数组中的所有元素
     *@param 要显示的数组
     */
    public void showArray(int[] array){
        for(int i:array){
            System.out.print(" "+i);
        }
        System.out.println();
    }
}

4、结果

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值