原理
最大值最小值一直向尾移动
时间复杂度O(n^2)
之后就不写那么详细了,其实这个东西还是原理比较重要,而原理单单只是文字描述实在无力,其他方式太浪费时间了,得补尝思.还是最初那句话我只是向从头开始记录笔记仅此而已.
不是为了教学啥的,如果这期间能有幸帮到某人,深感荣幸.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void bubbleSort(vector<int>& v)
{
//没有元素或元素少于两个不需要排序
if (v.empty() || v.size() < 2)
{
return;
}
//元素有size个,需要排size - 1次
for (int i = 0; i < v.size() - 1; i++)
{
//两个相邻元素,对位排序部分进行比较 -1越界 -i去掉已排序的部分
for (int j = 0; j < v.size() - i - 1; j++)
{
//最大最小值向首位移动
if (v[j] > v[j + 1]) //升序
{
swap(v[j], v[j + 1]);
}
}
}
}
int main()
{
vector<int> v = { 32,4,7,24,5,245,7,245,657,28 };
bubbleSort(v);
for (auto val : v)
{
cout << val << " ";
}
cout << endl;
return 0;
}