C++实现冒泡排序(BubbleSort)攻略
冒泡排序是一种简单的排序算法,它会重复地比较相邻的两个元素,如果顺序错误就交换它们的位置,直到排序完成。下面是C++实现冒泡排序的步骤。
1. 理解冒泡排序的基本原理
冒泡排序的基本思路是将待排序的数组分为已排序的部分和未排序的部分,先从未排序的部分开始,进行比较相邻元素的大小,并交换位置,直到本轮最大的元素被放到已排序部分的末尾。然后再从头开始进行比较,直到所有元素都被排序完毕。
2. 编写冒泡排序程序
下面是C++实现冒泡排序的代码:
void BubbleSort(int* arr, int len)
{
for (int i = 0; i < len - 1; i++)
for (int j = 0; j < len - i - 1; j++)
if (arr[j] > arr[j+1])
swap(arr[j], arr[j+1]);
}
该函数接收一个整型数组和数组的长度作为参数,利用两层循环遍历数组元素,进行比较和交换操作。为了提高效率,可以在遍历过程中记录是否已经排序完成,如果已经完成排序就可以提前结束。
3. 测试冒泡排序程序
下面是一个使用上述函数对一个整型数组进行排序的示例:
#include <iostream>
using namespace std;
void BubbleSort(int* arr, int len);
int main()
{
int arr[] = { 5, 2, 6, 3, 1, 4 };
int len = sizeof(arr) / sizeof(int);
BubbleSort(arr, len);
cout << "排序后的结果为:" << endl;
for (int i = 0; i < len; i++)
cout << arr[i] << " ";
return 0;
}
输出结果为:
排序后的结果为:
1 2 3 4 5 6
4. 再举一个示例说明冒泡排序的思路
假设有一个数组arr,元素分别为{ 7, 3, 9, 2, 8 },进行冒泡排序的过程如下:
- 第一轮比较,比较4次,将最大的元素8放到数组的最后,当前数组状态为{ 3, 7, 2, 8, 9 }
- 第二轮比较,比较3次,将第二大的元素放到倒数第二个位置,当前数组状态为{ 3, 2, 7, 8, 9 }
- 第三轮比较,比较2次,将第三大的元素放到倒数第三个位置,当前数组状态为{ 2, 3, 7, 8, 9 }
- 第四轮比较,比较1次,将第四大的元素放到倒数第四个位置,当前数组状态为{ 2, 3, 7, 8, 9 }
- 第五轮比较,比较0次,排序完成。
经过上述5轮比较,可以将数组arr按照从小到大的顺序排列出来。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现冒泡排序(BubbleSort) - Python技术站