序言
哈喽,佳人们!最近我在重新学习数据结构与算法,但经过深刻的批评与自我批评,总结过往血的教训,我意识到自己并没有足够的毅力。因此呢,为了督促自己的学习,我会将学习过程中经典的代码整理下来并坚持打卡分享到csdn。如果恰巧你也有兴趣和我一道提升自己的代码能力,欢迎uu们点个赞&收藏&关注,以防我们走散了,蟹蟹侬咯!
与此同时,为了巩固学习,也会刷一些oj的题目,之后也会一并分享在此滴。当然咯,前提是,我这个小白能在平台ac并能讲的清楚。
今天向大家介绍的是冒泡排序,一个很基础的排序算法,也是本阶段学习过程的第一篇文章,欢迎uu们在评论区指正、建议。
算法介绍
-
第一轮,从第1个数到第n个数,逐个对比每两个相邻的数a、b,如果a>b,则将a、b交换。这一轮的结果是把最大的数“冒泡”到了第 n 个位置,在后面不用再管它。
-
第二轮,从第1个数到第 n-1 个数,对比每两个相邻的数。这一轮,把第二大的数“冒泡”到了第 n-1 个位置。
-
继续以上过程,直到排序完成。
时间复杂度
可以清晰的看到代码中有两层循环,因此时间复杂度为O(n^2)
代码实现
//bubble_sort
//算法步骤:从左往右开始遍历,比较相邻两个数,如果左边的大即交换二者;总共遍历 len-1 次
#include<bi