冒泡排序:
核心思想:
交换思想:通过比较数组中两个数的大小来对换两个数的位置。
特点:将较大的数向序列的尾部移动,将较小的数向序列前方移动。每次循环之后,最后的一个数不用计算。
void BullSort(vector<int>& v)
{
for (int i = v.size() - 1; i >= 0; i--)
{
for (int j = 0; j < i; j++)
{
if (v[j] > v[j + 1])
{
swap(v[j], v[j + 1]);
}
}
}
}
代码实现
int main()
{
vector<int> v;
for (int i = 9; i >= 1; i--)
{
v.push_back(i);
}
BullSort(v);
for (auto e : v)
{
cout << e << endl;
}
system("pause");
return 0;
}
结果如下:
冒泡排序的特点:
时间复杂度:O(n²)
空间复杂度:O(1)
稳定性:稳定