排序算法 -- (五)冒泡排序
发布日期:2021-05-10 17:10:05 浏览次数:11 分类:精选文章

本文共 1047 字,大约阅读时间需要 3 分钟。

冒泡排序(Bubble Sort)

冒泡排序是一种基本的排序算法,通过反复交换相邻元素,使最小的元素最终移动到第一个位置,最大元素移动到最后一个位置。这种方法的基本思想是:每一轮通过比较相邻元素,将较大的元素“冒”到后面,直到没有未排序的元素为止。

原理

  • 将序列中所有元素两两比较,将最大的放在最后面。
  • 再将剩余序列中所有元素两两比较,将最大的放在最后面。
  • 重复第二步,直到只剩下一个数。
  • 这种方法虽然效率较低,但对于小数据量或作为学习排序算法的基础,具有一定的实用价值。

    实现

    代码示例

    public class BubbleSort {
    public static void sort(int[] array) {
    int length = array.length;
    for (int i = 0; i < length; i++) {
    boolean sorted = true;
    for (int j = 0; j < length - i - 1; j++) {
    if (array[j] > array[j + 1]) {
    // 交换相邻元素
    int temp = array[j];
    array[j] = array[j + 1];
    array[j + 1] = temp;
    }
    }
    if (!sorted) {
    // 如果存在未排序元素,则继续循环
    break;
    }
    }
    }
    }

    工作流程

  • 外层循环:从最左边的元素开始遍历,逐渐向右移动。
  • 内层循环:从左到右遍历当前未排序部分的所有元素,将较大的元素向右移位。
  • 交换元素:如果当前元素大于下一个元素,则交换它们的位置。
  • 停止条件:如果某一轮内没有发生交换,说明数组已排序,可以终止算法。
  • 结果

    冒泡排序虽然简单,但其时间复杂度为O(n²),在处理较大数据量时表现不佳。尽管如此,它在教育领域和某些特定场景中仍然有其价值,尤其是帮助理解排序算法的基础原理。

    上一篇:Java垃圾回收器与内存分配策略
    下一篇:排序算法 -- (四)堆排序

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年04月18日 14时14分34秒