十大排序-冒泡排序
冒泡排序属于交换排序
从前往后(从后往前)两两比较交换,第一趟可以将最小的元素交换到待排序的第一个位置(或将最大的元素交换到待排序的最后一个位置).
下一趟排序之前排好序的元素就不用再参与比较了.
最坏情况下时间复杂度是O(\(n^2\)),最好的情况是o(n),平均时间复杂度是O(\(n^2\)).
空间复杂度是O(1)
void bubbleSort(vector<int> &a)
{
for(int i = a.size() -1 ; i > 0 ; i--)
{
bool flag = false;
for(int j = 0 ; j + 1 <= i ; j++)
{
if(a[j] > a[j+1])
{
flag = true;
int tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
if(!flag)
break;
}
}
保持好奇心!

浙公网安备 33010602011771号