使用冒泡排序解决问题
时间: 2024-09-09 22:17:21 浏览: 46
冒泡排序是一种基础的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
下面是如何使用冒泡排序来解决一个问题的例子,假设我们要对一组数字列表进行排序,例如:
```cpp
#include <iostream>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 遍历n-1次,因为最后一次遍历会确保最后一个位置已排序
for (int j = 0; j < n - 1 - i; j++) { // 每轮内部循环只遍历未排序部分
if (arr[j] > arr[j + 1]) { // 如果当前元素大于下一个元素,交换它们的位置
std::swap(arr[j], arr[j + 1]);
}
}
}
}
int main() {
int numbers[] = {64, 34, 25, 12, 22, 11, 90};
int size = sizeof(numbers) / sizeof(numbers[0]);
bubbleSort(numbers, size);
// 打印排序后的数组
for (int i = 0; i < size; i++)
std::cout << numbers[i] << " ";
return 0;
}
```
在这个例子中,冒泡排序算法会将最大的元素逐渐"冒泡"到数组的末尾,因此得到的是一个递减的有序序列。
阅读全文