冒泡排序代码

冒泡排序代码

冒泡排序代码



Cpp
#include <iostream>
using namespace std;

void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n - 1; i++) {    // 遍历数组直到倒数第二个元素
        for (int j = 0; j < n - i - 1; j++) {  // 每次遍历内部再比较并交换相邻未排序的元素
            if (arr[j] > arr[j + 1]) {
                // 如果当前元素大于下一个元素,则交换位置
                swap(arr[j], arr[j + 1]);
            }
        }
    }
}

// 测试函数
int main() {
    int data[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(data) / sizeof(data);

    bubbleSort(data, n);

    cout << "Sorted array: ";
    for (int i = 0; i < n; i++)
        cout << data[i] << " ";
    return 0;
}

Java 冒泡排序:

Java

public class BubbleSortExample {
    void bubbleSort(int arr[]) {
        int n = arr.length;
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    // 交换 arr[j+1] 和 arr[j]
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }

    public static void main(String args[]) {
        BubbleSortExample bs = new BubbleSortExample();
        int data[] = {64, 34, 25, 12, 22, 11, 90};
        bs.bubbleSort(data);
        System.out.println("Sorted array: ");
        for (int i : data)
            System.out.print(i + " ");
    }
}

冒泡排序的实现逻辑如下:

对于数组中的每个元素(从第一个开始),比较它与其右侧的元素。
如果左侧的元素比右侧的大,就交换它们的位置,这样每次循环后最大的元素都会“浮”到数组的一端。
重复这个过程,但每一次遍历时都会少比较一次,因为最后已经有序的部分不再需要对比。
当所有的元素都排好序,排序结束。

相关推荐

  1. 冒泡排序代码

    2024-07-20 18:00:04       28 阅读
  2. 排序算法——冒泡排序

    2024-07-20 18:00:04       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 18:00:04       123 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 18:00:04       131 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 18:00:04       109 阅读
  4. Python语言-面向对象

    2024-07-20 18:00:04       117 阅读

热门阅读

  1. qt log 输出为文件,每分钟换一个log文件

    2024-07-20 18:00:04       23 阅读
  2. Docker 运维常用命令及问题案例

    2024-07-20 18:00:04       23 阅读
  3. 从零开始!Jupyter Notebook的安装教程

    2024-07-20 18:00:04       26 阅读
  4. HttpHeaders类详解,这一篇就够了

    2024-07-20 18:00:04       29 阅读
  5. WPF中UI元素继承关系

    2024-07-20 18:00:04       27 阅读
  6. Linux复习01

    2024-07-20 18:00:04       23 阅读
  7. 算法刷题笔记 八数码(C++实现)

    2024-07-20 18:00:04       30 阅读
  8. Apollo开发指南

    2024-07-20 18:00:04       25 阅读
  9. Day05 Redis 面试题 下

    2024-07-20 18:00:04       25 阅读
  10. 【鸿蒙学习笔记】UI・页面路由 (@ohos.router)

    2024-07-20 18:00:04       26 阅读
  11. 《设计模式之美》学习笔记1

    2024-07-20 18:00:04       25 阅读