冒泡排序 -
依次比较相邻两元素,若前一元素大于后一元素则交换之,直至最后一个元素即为最大;然后重新从首元素开始重复同样的操作,直至倒数第二个元素即为次大元素;依次类推。如同水中的气泡,依次将最大或最小元素气泡浮出水面。
时间复杂度:O(N2) 稳定性:稳定
/*冒泡排序*/
void bubbleSort(vector<int> &arr, int bgn, int end)
{
/*isLoop用于指示依次遍历中是否发生元素交换,若没有,则已是有序数列,退出即可*/
bool isLoop = true;
for (int i = end; true == isLoop && i > bgn; --i)
{
isLoop = false;
for (int j = bgn + 1; j < i; ++j)
{
if (arr[j] < arr[j - 1])
{
mySwap(&arr[j], &arr[j - 1]);
isLoop = true;
}
}
}
}