IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 冒泡排序解释 -> 正文阅读

[数据结构与算法]冒泡排序解释

冒泡排序的核心就是依次比较相邻的两个数,升序排序时将小数放在前面,大数放在后面。排序算法一般都需要进行多轮比较,以下是冒泡排序的升序比较过程。

  • 第 1 轮:首先比较第 1 个和第 2 个数,将小数放前,大数放后;然后比较第 2 个数和第 3 个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后;至此第一轮结束,将最大的数放到了最后。

  • 第 2 轮:仍从第一对数开始比较,将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的数),第二轮结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。

总结来说,第 1 到 n-1 轮中(n 为数组长度,下文同)第 i 轮的作用是把第 i 大的数放到数组的 n-i 下标处。按此规律操作,直至最终完成排序。由于在排序过程中总是将大数往后放,类似于气泡往上升,所以称作冒泡排序。

通过上面的分析可以看出,假设需要排序的序列的个数是 n,则需要经过 n-1 轮,最终完成排序。在第一轮中,比较的次数是 n-1 次,之后每轮减少 1 次。

用 Java 语言实现冒泡排序,可以用双重 for 循环实现,其程序如下。

新建一个 TestbubbleSort.java 文件,并输入以下代码。

public class TestbubbleSort {
    public static void main(String[] args) {
        int[] a = {12,32,13,45,34,65,76,78,89,57};
        System.out.println("排序前的数据为:");
        for (int a1 : a) {
            System.out.print(a1+" ");
        }
        bubbleSort(a);
        System.out.println("\n"+"排序后的数据为:");
        for (int a2 : a) {
            System.out.print(a2+" ");
        }

    }

static void bubbleSort(int[] a){
    int temp;
    //需要比较n-1 轮
    for(int i=0;i<a.length-1;i++){
        //根据a.length-i-1,每轮需要比较的次数逐轮减少一次
    for(int j=0;j<a.length-i-1;j++){
        //相邻数进行比较,符合条件进行替换
        if(a[j]>a[j+1]){
            temp=a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
        }
    }
    }
}
}

编译、运行此程序,结果如下图所示。

排序前的数据为:
12 32 13 45 34 65 76 78 89 57 
排序后的数据为:
12 13 32 34 45 57 65 76 78 89 
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:44:08  更:2021-12-24 18:45:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:26:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码