原理
每一次遍历,将未排序数组的最大值放在未排序数组的最后
手撕代码
void BubbleSort(vector<int> &vec)
{
int len = vec.size();
bool flag = false;
for(int i = 0;i<len-1;i++)//对n-1个元素排序
{
for(int j = 1;j<len-i;j++)
{
flag = false;
if(vec[j-1]>vec[j])
{
flag = true;
vec[j-1] ^= vec[j];
vec[j] ^= vec[j-1];
vec[j-1] ^= vec[j];
}
}
if(!flag)
break; //未发生交换,说明有序
}
}