简述一下冒泡排序的原理

简介: 简述一下冒泡排序的原理

我们先来了解一下冒泡排序的原理是什么?

概念:

概念:冒泡排序是一种简单的排序算法,可以把一系列的数据按照一定的顺序进行排列显示(从大到小或从小到大),它重复
如果他们的顺序错误就把他们交换过来,走访数列的工作是重复的进行直到没有
的走访过要排序的数列,一次比较两个元素,
再需要交换,也就是说该数列已经排序完成,这个算法的名字由来是因为越小的元素会经由交换慢慢浮到数列的顶端

基本原理:

1.比较相邻的元素,如果第一个比第二个大,交换他们两个

2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,在这一点,最后的元素应该是最大的值

3.针对所有的元素重复以上的步骤,除了最后一个

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

function bubbleSort(arr) {
    var len = arr.length;
    for (var i = 0; i < len - 1; i++) {
        for (var j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {        // 相邻元素两两对比
                var temp = arr[j+1];        // 元素交换
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }
    return arr;
}

这是用js代码实现的冒泡排序

目录
相关文章
|
7月前
|
搜索推荐 算法 Python
不了解冒泡排序的原理?
不了解冒泡排序的原理?
57 5
|
搜索推荐 算法 Java
【算法】基数排序的原理与Java实现
基数排序(Radix Sort)是一种非比较性的排序算法,它根据元素的位数逐位进行排序。基数排序的核心思想是将待排序的元素按照低位到高位的顺序进行排序,每一位都使用稳定的排序算法(通常是计数排序或桶排序)。通过多次按位排序,最终可以得到有序的结果
119 0
|
7月前
|
Java
LowB三人组--插入排序原理和java实现
LowB三人组--插入排序原理和java实现
|
存储 算法 Java
【算法练习】有趣的括号匹配问题(思路+ 图解 +优化)基于java实现
1.题目描述 小洛看着一堆只包含’(‘和’)‘的括号序列犯愁了,小洛想知道这串序列里最长正确匹配的序列长度是多少,你能帮帮小洛吗?
【算法练习】有趣的括号匹配问题(思路+ 图解 +优化)基于java实现
|
人工智能 搜索推荐
【数据结构】深入浅出讲解计数排序【图文详解,搞懂计数排序这一篇就够了】
【数据结构】深入浅出讲解计数排序【图文详解,搞懂计数排序这一篇就够了】
80 0
|
搜索推荐 Java
冒泡排序算法的Java实现及优化
冒泡排序算法的Java实现及优化
|
存储 人工智能 搜索推荐
冒泡排序:了解原理与实现
冒泡排序:了解原理与实现
94 0
|
搜索推荐 算法 Java
【算法】插入排序的原理与Java实现
插入排序(Insertion Sort)是一种简单直观的排序算法,它通过构建有序序列,对未排序的元素逐个插入到已排序的序列中。插入排序的核心思想是将待排序的元素与已排序的元素逐个比较并移动,直到找到合适的位置插入。
149 1
|
搜索推荐
冒泡排序的原理
冒泡排序算法的原理如下: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比比较 白话就是:比如有6个数,你需要比较5趟,这个是固定死的
248 0
|
存储 搜索推荐 算法
【算法】核心排序算法之堆排序原理及实战
【算法】核心排序算法之堆排序原理及实战
【算法】核心排序算法之堆排序原理及实战