前端面试不会直接挂掉的题目--冒泡排序

简介: 前端面试不会直接挂掉的题目--冒泡排序

在准备面试的过程中,我们往往容易陷入到很多难度比较高的题目中不能自拔,却忽略了比较基础的题目,面试官在不了解我们的情况下,刚开始可能会问我们一道比较基础的算法题,比如数据结构,请问你能手写下冒泡排序吗?如果此时不会的话,可能直接结束面试了。哈哈~,让我们今天来一起学习下这个比较简单的排序算法吧~

什么是冒泡排序?

冒泡排序指的是一种排序的思想,假如我们拿到一个数组,数组中是一堆无序的数字,冒泡排序就可以让这堆无序的数字变得有序,之所以叫做冒泡排序而不是其他的XX排序,是因为冒泡排序的每一轮排序中都将最大的值置为了最后的位置上,就像冒泡一样,所以取名为冒泡排序。

冒泡排序的思想

  1. 排序的轮数是数组的长度-1.
  2. 每一轮排序都将最大的值放在最末尾。
  3. 下一轮排序需要比较的次数都要比上一轮少一次。

实现冒泡排序

function mySort(arr) {
    let temp;
    for (let i = 0; i < arr.length - 1; i++) {
        for (let j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    console.log(arr);
    return arr;
}
mySort([8,9,7,3,2,6])
复制代码

时间复杂度和空间复杂度分析

  • 空间复杂度

在空间上,我们只定义了一个临时变量进行交换使用,所以空间复杂度为O(1)。

  • 时间复杂度

我们分析最差情况下的时间复杂度,假如数组是完全逆序排列的,时间复杂度为:3n(n-1)/2,所以平均时间复杂度为O(n^2).

冒泡排序的稳定性

在辨别冒泡排序是否是稳定排序之前,我们首先要知道什么样的算法算是一种稳定的算法。稳定的算法通俗的讲就是假如两个值是一样的,排序前A在B的前面,排序后A还在B的前面,这样的排序算法我们称之为稳定的排序算法,反之称为不稳定的排序算法,因此冒泡排序是稳定的。

相关文章
|
3天前
|
缓存 JavaScript 前端开发
2024 前端高频面试题之 Vue 篇
2024 前端高频面试题之 Vue 篇
20 8
|
3天前
|
JavaScript 前端开发
前端面试02(JS)
本文是前端面试系列的第二篇,主要涵盖了JavaScript的基础知识,包括JS的组成(ECMAScript、DOM、BOM)、内置对象(如String、Array、Math、Date等)、数组操作方法、数据类型检测方法(typeof、instanceof、constructor、Object.prototype.toString.call)、闭包的概念及其特点、前端内存泄漏的原因和类型、事件委托的优势、基本数据类型与引用数据类型的差异、原型链的工作原理以及JS实现继承的多种方式(原型链、构造函数、组合继承等)。文章结尾鼓励读者点赞和支持作者。
9 1
|
3天前
|
前端开发 Java
前端面试题01(css)
前端面试题01聚焦CSS,涵盖选择器优先级、隐藏元素方法、px与rem差异、重绘与重排解释、元素居中技巧及可继承属性。还探讨了CSS预处理器SASS和LESS的特性。文章提供实例代码展示居中布局的多种实现方式。鼓励读者点赞和支持。
9 0
|
11天前
|
存储 缓存 前端开发
100道 IT名企前端面试真题,Web前端阿里等大厂面试题汇总
100道 IT名企前端面试真题,Web前端阿里等大厂面试题汇总
|
11天前
|
移动开发 前端开发 JavaScript
【前端面试】前端面试题300道~~熬夜吐血整理,2024年最新大厂面试经验分享稿
【前端面试】前端面试题300道~~熬夜吐血整理,2024年最新大厂面试经验分享稿
|
11天前
|
前端开发 JavaScript
【前端面试】this的指向_不爱吃糖的程序媛夏天,web前端面试项目中的问题包括
【前端面试】this的指向_不爱吃糖的程序媛夏天,web前端面试项目中的问题包括
|
11天前
|
前端开发 JavaScript 中间件
Vue3整合VxeTable,2024大厂前端面试
Vue3整合VxeTable,2024大厂前端面试
|
11天前
|
前端开发 JavaScript
JavaScript新科技:PostCSS的安装和使用,2024年最新2024网易Web前端高级面试题总结
JavaScript新科技:PostCSS的安装和使用,2024年最新2024网易Web前端高级面试题总结
|
11天前
|
移动开发 前端开发 JavaScript
10款精美的web前端源码的特效,2024年最新面试题+笔记+项目实战
10款精美的web前端源码的特效,2024年最新面试题+笔记+项目实战
|
11天前
|
移动开发 前端开发 JavaScript
10款精美的web前端源码的特效(1),头条前端面试节奏
10款精美的web前端源码的特效(1),头条前端面试节奏