我的算法日志:排序算法之冒泡排序

6 篇文章 0 订阅
  • 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。

  • 冒泡排序的基本原理是:每一趟只将一个数归位。若要将n个元素排序,至少需要进行n-1趟操作。

以将12、35、99、18、76这5个数按照从小到大的循序进行排序为例:
第1趟操作:将最大的数归位,需进行4次排序。
(1)将12与35进行比较,12<35, 不用交换位置,结果:12,35,99,18,76.
(2)将35与99进行比较,35<99, 不用交换位置,结果:12,35,99,18,76.
(3)将99与18进行比较,99>18, 顺序错误,二者交换位置,结果:12,35,18,99,76.
(4)将99与76进行比较,99>76, 顺序错误,二者交换位置,结果:12,35,18,76,99.
至此,最大的数99归位

第2趟操作:将第二大的数归位,需进行3次排序。
(1)将12与35进行比较,12<35, 不用交换位置,结果:12,35,18,76,99.
(2)将35与18进行比较,35>18, 顺序错误,二者交换位置,结果:12,18,35,76,99.
(3)将35与76进行比较,35<76, 不用交换位置,结果:12,18,35,76,99.
至此,第二大的数76归位

第3趟操作:将最中间的数归位,需进行2次排序。
(1)将12与18进行比较,12<18, 不用交换位置,结果:12,18,35,76,99.
(2)将18与35进行比较,18<35, 不用交换位置,结果:12,18,35,76,99.
至此,最中间的数35归位

第4趟操作:将第二小的数归位,需进行1次排序。
将12与18进行比较,12<18, 不用交换位置,结果:12,18,35,76,99.
至此,第二小的数18归位

java代码实现:
package com.guohao.arithmetics;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 冒泡排序
 */
public class BubbleSort {
    public static void main(String[] args){
        Scanner reader = new Scanner(System.in);
        int n = reader.nextInt();  //要排序的元素个数
        int[] arr = new int[n];  //数组arr用于存储待排序的元素

        for(int i=0; i<n; i++){
            arr[i] = reader.nextInt();  //依次输入待排序的元素
        }
        reader.close();

        //从小到大进行排序
        for(int i=0; i<n-1; i++){  //要将n个元素排序至少需进行n-1趟操作
            for(int j=0; j<n-i-1; j++){  //每趟操作需进行n-i-1次排序
                if(arr[j] > arr[j+1]){ //如果前一个元素比后一个元素大,则二者交换位置
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }

        System.out.println("排序后的数组:"+Arrays.toString(arr));  //输出排序后的数组
    }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值