闲来无事,冒个泡呗,(冒泡排序)

学习是一个周而复始,不断累积,不断记录,不断总结的过程。写东西也不能偷懒呀!。冒泡可以说是广大新手入门,必学的算法之一。无论是c c++ java 新手入门老师都会讲到这个。尽管这个效率底下,但是作为学习来说,还是一份不错的新手算法参考资料。

算法源码:

int main(int argc,char *argv[])
{
    int input[] {10,12,11,1,5,42,54,64,46,32};
    int temp;

    int size = sizeof(input)/sizeof(input[0]);
    for(int i=0;i<size-1;i++)
    {
        for(int j=0;j<size-1;j++)
        {
            if(i!=j)
            {
                if(input[i]<input[j])
                {
                    temp = input[i];
                    input[i] = input[j];
                    input[j] = temp;
                }
            }
        }
    }

    for(auto iter = begin(input); iter!=end(input); ++iter)
    {
        cout <<*iter<<" ";
    }

    cout <<"\n"<<endl;
    return 0;
}

 核心算法:

temp = input[i];
input[i] = input[j];
input[j] = temp;

 算法解析:

算法总的来说,就是通过两个循环,进行比较,如果大于就交换。

比如数组 【10,5,8】

第一趟:取10,分别和5, 8 比较,如果小于就交换位置。

第二天:取5,分别和10,8比较,如果小就交换位置。

第三趟:取8,分别和10,5比较,如果小就交换位置。

算法总结:

效率底下,算法过于简单,大家看一遍就应该能懂。

您可能还喜欢...

想说点什么吗?

您将是第一位评论人!

提醒
avatar