算法学习笔记之冒泡算法

简介: 算法学习笔记之冒泡算法

算法学习笔记之冒泡算法

冒泡算法原理

  • 对要排序的数组中的数据,依次比较相邻的两个数据的大小。
  • 如果前面的数据大于后面的数据,就把这两个数据进行交换。这样一轮比较和交换过后,就把最小的数据放在数组的最前面;或者说最大的数据放在数组的最后面
  • 按照上述比较和交换的方法,把剩下的数据再进行相同操作,最后,便可按照从小到大或者从大到小的顺序对数组完成排序。


冒泡算法 Java 的实现

package top.simba1949;
/**
 * 交换排序——冒泡排序算法
 *
 * 冒泡排序算法原理:
 *     1. 对要排序的数组中的数据,依次比较相邻的两个数据的大小。
 *     2. 如果前面的数据大于后面的数据,就把这两个数据进行交换。这样一轮比较和交换过后,就把最小的数据放在数组的最前面;
 *     或者说最大的数据放在数组的最后面
 *     3. 按照上述比较和交换的方法,把剩下的数据再进行相同操作,最后,便可按照从小到大的顺序对数组完成排序。
 *
 * @author SIMBA1949
 * @date 2019/6/28 22:20
 */
public class BubbleSort {
    public static void main(String[] args) {
        int[] intArr = {1, 9, 90, 20, 30, 66, 34, 55};
        bubbleSortImp(intArr);
        for (int i : intArr) {
            System.out.print(i + "\t");
        }
    }
    /**
   * 冒泡算法的实现
   * @param arr
   */
    public static void bubbleSortImp(int[] arr){
        if (null == arr || arr.length <= 1){
            return;
        }
        // 假设第一个数是最大数,冒泡最大的数放在数组后面
        for (int area = arr.length - 1; area >= 0; area--){
            for (int i = 0; i < area; i++) {
                // 如果前面的数据比后面的大,数据交换
                if (arr[i] > arr[i+1]){
                    int temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
        }
    }
}
目录
相关文章
|
1月前
|
数据可视化 搜索推荐 Python
Leecode 刷题笔记之可视化六大排序算法:冒泡、快速、归并、插入、选择、桶排序
这篇文章是关于LeetCode刷题笔记,主要介绍了六大排序算法(冒泡、快速、归并、插入、选择、桶排序)的Python实现及其可视化过程。
13 0
|
1月前
|
搜索推荐 算法
排序算法---冒泡&选择&插入总结
排序算法---冒泡&选择&插入总结
14 0
|
3月前
|
搜索推荐 算法
十大排序算法-快排-希尔-堆排-归并-冒泡-桶排-选择-插入-计数-基数
十大排序算法-快排-希尔-堆排-归并-冒泡-桶排-选择-插入-计数-基数
十大排序算法-快排-希尔-堆排-归并-冒泡-桶排-选择-插入-计数-基数
|
3月前
|
数据采集 搜索推荐 算法
【高手进阶】Java排序算法:从零到精通——揭秘冒泡、快速、归并排序的原理与实战应用,让你的代码效率飙升!
【8月更文挑战第21天】Java排序算法是编程基础的重要部分,在算法设计与分析及实际开发中不可或缺。本文介绍内部排序算法,包括简单的冒泡排序及其逐步优化至高效的快速排序和稳定的归并排序,并提供了每种算法的Java实现示例。此外,还探讨了排序算法在电子商务、搜索引擎和数据分析等领域的广泛应用,帮助读者更好地理解和应用这些算法。
41 0
|
5月前
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
5月前
|
搜索推荐 算法
【排序】数据结构——排序算法概念及代码详解(插入、冒泡、快速、希尔)
【排序】数据结构——排序算法概念及代码详解(插入、冒泡、快速、希尔)
|
6月前
|
人工智能 算法 C++
c++算法学习笔记 (17) 质数
c++算法学习笔记 (17) 质数
|
6月前
|
算法 C++
c++算法学习笔记 (15) 单调栈与单调队列
c++算法学习笔记 (15) 单调栈与单调队列
|
6月前
|
算法 C++
c++算法学习笔记 (13) 链表
c++算法学习笔记 (13) 链表
|
6月前
|
算法 C++
c++算法学习笔记 (12) 区间合并
c++算法学习笔记 (12) 区间合并