🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。🥰内容专栏:这里是《算法详解》,笔者用重金(时间和精力)打造,将算法知识一网打尽,希望可以帮到读者们哦。
🥴内容分享:本期会对C语言中的冒泡排序进行分析,讲解什么是冒泡排序,冒泡排序的思想,怎样实现冒泡排序。
😘:不要998,只要一件三连,三连买不了吃亏,买不了上当(写作不易,求求了💓)
目录
目录
😄前言
😁什么叫做冒泡排序
😇算法思想
😋冒泡排序的具体实现
🤑冒泡排序的优缺点
🤗总结
😄前言
上期我们对二分查找进行了详细的讲解,介绍了它的由来,算法思想和最终怎样实现二分查找。想了解的小伙伴可以去看看哦(http://t.csdn.cn/EM3dM)。接下来就开始本期的内容叭!
😁什么叫做冒泡排序
百度百科中说冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
😇算法思想
冒泡排序的核心思想是让相邻的元素两两比较,每一对都要比较,符合要求就交换位置,不断重复,直到没有元素需要比较
算法思想的实现:假设数组内有n个数随机排放。1.在数组初始状态下, 我们将整个数组设为排序范围,范围为数组下标为0-n-1的数。 2.从下标为0的数开始,两两相邻的数比较,如果前一个数大于后一个数,则进行交换。交换后再和后一个数进行比较,一直比较到最后一个数,这样最大的数就被排到到最后了。 3.前面为第一趟排序,我们需要进行n-1趟排序,假设第一次排序标记为0,标记数为i,每过一趟i+1,那么每次排序需要两两比较的次数为 n-1-i。4排序到没有元素可以排序后则排序完成。文字那么生涩难懂,直接上图片分析叭:
😋冒泡排序的具体实现
🤑冒泡排序的优缺点
优点:冒泡排序比较简单,空间复杂度较低,具有算法稳定性,冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。但是它的缺点也比较显著:时间复杂度太高,效率慢;
🤗总结
1.计算元素的个数,确定排序的趟数(为个数-1)
2.确定每趟两两比较的次数。(每过一趟两两比较次数减一)、
3.直到没有元素比较则结束。