排序 | 冒泡排序

Posted YOUCRY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序 | 冒泡排序相关的知识,希望对你有一定的参考价值。

1.描述——邻里纷争之胜者升迁


冒泡排序是非常简单直观的排序算法。重复访问待排序数列,一次比较两个元素,如果他们顺序错误就交换过来。直到数列顺序则完成。
就像邻里之间一言不和就吵架,右边的区位比左边的好,一较高下之后胜者独占优势区位,不断来回比较直到所有人处于其应该处于的位置。


示例 1

输入:arr = [8,7,6,5,4,3,2,1]

输出:[1,2,3,4,5,6,7,8]

排序 | 冒泡排序


排序 | 冒泡排序


2.想法


冒泡排序最坏、平均时间复杂度均为O(n^2),最好可达到O(n),即元素全有序且设置无交换标志位时。空间复杂度为O(1)。
冒泡排序为稳定的排序算法。
排序 | 冒泡排序
排序 | 冒泡排序


3.代码


排序 | 冒泡排序
class Solution {public:    void bubbleSort(vector<int>& arr) {        for(int i=1;i<arr.size();i++) {         for(int j=0;j<arr.size()-i;j++){                if(arr[j]>arr[j+1]){                   swap(arr[j],arr[j+1]);                }         }        }    }};






END







关注我们

https://leetcode-cn.com/u/cdxx/
ALWAYS HERE



以上是关于排序 | 冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

交换排序(冒泡排序快速排序的算法思想及代码实现)

请问这个冒泡排序代码,每一行都是啥意思呀,谢谢

java冒泡排序法代码

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

冒泡排序python代码