排序--2--C++--冒泡排序
程序员文章站
2022-07-08 14:44:43
...
排序--2--C++--冒泡排序
冒泡排序:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。(来自百度)
冒泡排序是稳定排序,因为一样的数字相邻比对后,没有换位置。
时间复杂度:O(n²)
冒泡排序效果图:第一次排序经过相邻的两个数字替换后,能确定最后一个数字,第二次就可以确定倒数第二个,依次类推。
代码如下:i代表总共循环size次,j代表每一轮比对的数。
#include <string>
#include <iostream>
using namespace std;
void maopao_sort(vector<int>& vector1, int size)
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size - i-1;j++)
{
if (vector1[j] > vector1[j + 1])
{
swap(vector1[j], vector1[j + 1]);
}
}
}
}
int main()
{
vector<int> vector1;
int num;
int size = 5;
for (int i = 0; i < size;i++)
{ cin >> num;
vector1.push_back(num);
}
maopao_sort(vector1, size);
for (int i = 0; i < size;i++)
{
cout << vector1[i] << " ";
}
cout << endl;
return 0;
}
结果图: