基础写法
冒泡排序思想:泡泡一直向上冒,冒到不能冒的位置。即每次比较两个相邻元素,如果顺序不对就交换,这样一轮交换就能确定当前最大/小值。
假设数组 a r r a y [ 1... n ] array[1...n] array[1...n],按照从小到大排序,如果第1个元素大于第2个元素,则交换两个元素,一直到第n-1个元素和第n个元素比较,那么一轮结束,第n个元素一定是该数组的最大值,接下来第2轮对 a r r a y [ 1... n − 1 ] array[1...n-1] array[1...n−1]进行相同操作,第n-1个元素一定是第2大元素。一共需要n-1轮比较。
以下代码全部按照从小到大排序。
void bubblesort(vector<int> &numbers)
{
int len = numbers.size();
if(len <= 0) return;
int swapTmp;
for(int i = 1; i < len; i++) //确定比较轮数
{
for(int j = 0; j < len-i; j++) //比较范围
{
if(numbers[j] > numbers[j+