冒泡排序算法(C++版)

编程入门 行业动态 更新时间:2024-10-22 08:33:27

冒泡排序<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法(C++版)"/>

冒泡排序算法(C++版)

1、什么是冒泡排序?

冒泡排序(Bubble Sort)是一种简单的排序算法,其基本思想是多次遍历待排序的元素序列,每次比较相邻两个元素,如果它们的顺序不正确就交换它们,直到整个序列有序。在每一轮遍历中,最大的元素都会被交换到最后,因此称之为冒泡。

2、冒泡排序的基本步骤

冒泡排序的基本步骤如下:

  1. 从第一个元素开始,比较相邻的两个元素。
  2. 如果顺序不正确,交换这两个元素。
  3. 继续比较下一对相邻元素,重复步骤2,直到到达序列的末尾。
  4. 重复以上步骤,每次都将未排序部分的最大元素移动到末尾。
  5. 重复步骤1-4,直到整个序列有序。

3、适用范围

适用范围:

  • 冒泡排序是一种简单而容易理解的排序算法,适用于小规模的数据集
  • 对于已经基本有序的数据集,冒泡排序的性能可能较好,因为它只需进行有限的比较和交换。

4、冒泡排序的特点

特点:

  • 冒泡排序是一种稳定的排序算法,相等元素的相对位置不会改变。
  • 时间复杂度为O(n^2),其中n是待排序元素的个数。它是一种效率较低的排序算法,特别是对大规模数据集。
  • 冒泡排序是一种原地排序算法,不需要额外的空间。
  • 冒泡排序的实现较为简单,仅包含基本的比较和交换操作。
  • 尽管冒泡排序在性能上不如其他高级排序算法(如快速排序、归并排序等),但在某些特定情况下,它可能是一个合适的选择。

总体而言,冒泡排序是一种教学和理解排序算法的好例子,但在实际应用中,由于其较高的时间复杂度,通常会选择更为高效的排序算法。

5、C++版本的冒泡排序代码

#include <iostream>void swap(int &a, int &b) {int temp = a;a = b;b = temp;
}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]);}}}
}void printArray(int arr[], int size) {for (int i = 0; i < size; ++i) {std::cout << arr[i] << " ";}std::cout << std::endl;
}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90};int n = sizeof(arr) / sizeof(arr[0]);std::cout << "Unsorted array: ";printArray(arr, n);bubbleSort(arr, n);std::cout << "Sorted array: ";printArray(arr, n);return 0;
}

这个程序包含了一个 swap 函数用于交换两个元素的值,一个 bubbleSort 函数用于执行冒泡排序,以及一个 printArray 函数用于打印数组。在 main 函数中,我们定义了一个整数数组,调用 bubbleSort 对其进行排序,并使用 printArray 打印排序后的结果。

更多推荐

冒泡排序算法(C++版)

本文发布于:2023-11-14 14:30:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1587643.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!