算法——冒泡排序

//冒泡排序 O(n^2)

/*

原理思考:第一次冒泡是将最大值移到了最后一个

          第二次是将次大值移到了倒数第二个,以此类推......

           所以只需(数组长度-1)次就能完成排序

*/

#include <iostream>
#include <cstdio>
using namespace std;
int a[10]={213,21,45,231,67,31,2389,54,32,77};
void fun()
{
    for(int i=0;i<10-1;i++)//对长度为10的数组只需要10-1次
    {
        for(int j=0;j<10-i-1;j++)//优化:因为最后面i个已经排好序了,所以是10-i-1
            if(a[j]>a[j+1])
                swap(a[j],a[j+1]);
    }
}
int main()
{
    fun();
    return 0;
}
这篇文章,是又一个故事的结束...
lazy's story is continuing.
原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/13535360.html