一、冒泡排序算法详解
二、冒泡排序代码实现(C++)
#include<iostream>
#include<vector>
using namespace std;
//冒泡排序算法
void buble_sort(vector<int>& num)
{
int len = size(num);
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - 1 - i; j++)
{
if (num[j] > num[j + 1])
{
swap(num[j], num[j + 1]);
}
}
}
}
//带有标志位的冒泡排序算法
void buble_sort1(vector<int>& num)
{
int len = size(num);
for (int i = 0; i < len - 1; i++)
{
bool flag = false;//初始化标志位
for (int j = 0; j < len - 1 - i; j++)
{
if (num[j] > num[j + 1])
{
swap(num[j], num[j + 1]);
flag = true;//记录交换元素
}
}
if (!flag) break;//内循环未交互任何元素,则跳出
}
}
int main()
{
int a[] = { 4,1,3,1,5,2 };
cout << size(a) << endl;
vector<int> array;
for (int i = 0; i <size(a); i++)
{
array.push_back(a[i]);
//cout << array[i] << endl;
}
//输出排序前的结果
cout << "排序前结果:";
for (int i = 0; i < size(a); i++)
{
cout << array[i] << " ";
}
cout << endl;
cout << "冒泡排序后:";
buble_sort(array);
for (int i = 0; i < size(a); i++)
{
cout << array[i] << " ";
}
cout << endl;
//调用排序算法
system("pause");
return 0;
}