冒泡排序是一种简单的排序算法,它重复地遍历待排序的元素列,依次比较相邻的元素,并在需要时交换它们的位置,直到整个序列按照要求有序。这个算法的名字由于在每一轮排序中,最大(或最小)的元素会像气泡一样"浮"到最后的位置而得名。
具体步骤如下:
- 从数组的第一个元素开始,依次比较相邻的两个元素,如果它们的顺序不符合要求(如升序排列时前面的元素比后面的大),则交换它们的位置,使得较大(或较小)的元素向数组的末尾移动。
- 继续对剩余的元素重复上述步骤,直到没有任何一对相邻元素需要交换位置。
- 最终,整个数组按照要求有序。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template<typename T>
void bubble_sort(vector<T>& arr)
{
for (size_t i = 0; i < arr.size()-1; i++)
{
for (size_t j = 0; j < arr.size() - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
swap(arr[j], arr[j + 1]);
}
}
}
}
int main()
{
vector<int> intarr = { 64, 25, 12, 22, 11 };
for (auto& num : intarr)
{
cout << num << " ";
}
cout << endl;
bubble_sort(intarr);
for (auto& num : intarr)
{
cout << num << " ";
}
cout << endl;
return 0;
}

571

被折叠的 条评论
为什么被折叠?



