面试题常考&必考之--js数组排序冒泡排序和快速排序
冒泡排序:
原理:比较相邻的元素,将值大的元素交换到右边。(如果相等不进行交换)
实例:
要排列数组:[10,1,35,61,89,36,55]

第一趟排序:
第1次排序:10和1比较,10>1,交换位置 [1,10,35,61,89,36,55]
第2趟排序:10和35比较,10<35,不交换位置 [1,10,35,61,89,36,55]
第3趟排序:35和61比较,35<61,不交换位置 [1,10,35,61,89,36,55]
第4趟排序:61和89比较,61<89,不交换位置 [1,10,35,61,89,36,55]
第5趟排序:89和36比较,89>36,交换位置 [1,10,35,61,36,89,55]
第6趟排序:89和55比较,89>55,交换位置 [1,10,35,61,36,55,89]
第一趟总共进行了6次比较,排序结果:[1,10,35,61,36,55,89]
第二趟..........
分析:数组中N(七)个数字要排序完成,总共进行N-1(六)趟排序,每i趟的排序次数为(N-i)次
所以写代码可以用for的双重循环语句,(外层控制循环多少趟,内层控制每一趟的循环次数)
代码:

快速排序:
原理:每轮从数组中取出一个数作为基准
在排序过程中,小于或者等于基准的数放在基准的左边,大于基准的全部放在右边
在对左边和右边的继续进行上面两部,直到间距为1
方法:
以下方法来源CSDN,感觉通俗易懂,分享给大家:
[6 1 2 7 9 3 4 5 10 8](选择每轮数组中的第一个数作为基数,所以起始为6)


代码:

面试题常考&必考之--js数组排序冒泡排序和快速排序的更多相关文章
- 整理的最全 python常见面试题(基本必考)
整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...
- 面试题常考&必考之--js闭包特性和优缺点 (外加小例子)
当内部函数被返回到外部并保存时,一定会产生闭包.闭包会产生原来的作用域链,不释放. 闭包,可以理解为,写一个函数,然后产生闭包的这种现象. 概念: 基础: 主要是:add reduce 被返回 ...
- 面试题常考&必考之--js中的难点!!!原型链,原型(__proto__),原型对象(prototype)结合例子更易懂
1>首先,我们先将函数对象认识清楚: 补充snow的另一种写法: var snow =function(){}; 2>其次:就是原型对象 每当我们定义一个函数对象的时候,这个对象中就会包含 ...
- 面试题常考&必考之--js中的数组去重和字符串去重
1.引入:首先得知道数组没有可以直接去重的方法,即直接[].unique()是不支持的, 会报“Uncaught TypeError: [].unique is not a function”错误, ...
- 面试题常考&必考之--js中的对象的浅拷贝和深拷贝(克隆,复制)(下)
这里主要是讲深拷贝: 深拷贝:个人理解就是拷贝所有的层级 1.像对象里再放数组和对象这些叫引用值.开始我们先判断大对象中是否有引用值(数组和小对象), 然后在判断引用值是数组还是对象 2.开始啦: 1 ...
- 面试题常考&必考之--js中的call()和apply()
apply: 接受两个参数,第一个参数是要绑定给this的值,第二个参数是一个参数数组.当第一个参数为null.undefined的时候,默认指向window. call: 第一个参数是要绑定给thi ...
- 面试题常考&必考之--http访问一个页面的全流程(Tcp/IP协议)
分析:-http访问一个页面的全流程,也就好比我们在地址栏输入地址,然后点击回车进行访问 该面试题的主要考点是:计算机网络的TCP/IP协议栈 描述图片:首先应用层提交http请求,传到传输层后由,T ...
- 前端面试题常考&必考之--跨域的解决办法
1.为啥出现跨域??? 在制定Html规则时,为了安全的考虑,一个源的脚本(网页,网站)不能与另一个源的资源进行交互, 所以就引发一个词叫做“同源策略”. 同源策略:同源策略是一种约定,它是浏览器最核 ...
- 前端面试题常考&必考之--用jquery写出当前元素的同辈元素的第二个结点的value值
问题:用jquery写出当前元素的同辈元素的第二个结点的value值??? 分析:该题目有一个坑,那就是,如果当前元素没有第二个兄弟结点呢(坑坑坑) 解析: 一般我们可能会这样写: $(this).s ...
随机推荐
- mysql --> select * from Employee group by name这样的语法有什么意义?
神奇的mysql才会支持select * from Employee group by name 这种反逻辑的SQL(假定该表非仅name一个列) mysql 的逻辑是:select 的返回字段,如果 ...
- 卷积神经网络应用于MNIST数据集分类
先贴代码 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist = inpu ...
- Kubernetes服务部署解决方案
学习了K8S的基础知识,我们的目的就是解决我们服务的迁移,那么接下去通过几个案例来感受一下K8s部署带来的便捷与效率. 环境准备: 3个节点,然后我这边也安装了 Ingress. 部署wordpres ...
- PL/SQL基本操作
1.常规过程化形式 declare o_booking_flag ); begin -- Call the procedure destine_ticket(', , 'E', , o_booking ...
- java常用类详细介绍及总结:字符串相关类、日期时间API、比较器接口、System、Math、BigInteger与BigDecimal
一.字符串相关的类 1.String及常用方法 1.1 String的特性 String:字符串,使用一对""引起来表示. String声明为final的,不可被继承 String ...
- 如何去完成一个html网页
其实我也是菜鸟一个,不过我还是想说说,昨晚看的视频好回忆回忆. 看到这样一个网页我们要怎么入手,这个就要像庖丁解牛一样,我们要对它的各个位置都要了解,分析出页面的结构,要有一个总体的把握,先把这个页面 ...
- 4-2如何判断字符串a是否以字符串b开头或结尾
1.相关介绍 1.1修改文件权限和查看文件权限 在windows平台实验时 os.chmod()无法将文件权限修改为可执行,暂不深究如何实现.在linux平台进行测试. (1)创建三个文件 pytho ...
- XADC
XADC实验 1.XADC概述 Xilinx7系列内部自带一个双通道12位分辨率的高速(1MSPS 1M sample per second)采样速率的模拟混合信号处理模块,双通道的ADC支持单极和差 ...
- js放大镜特效
在平时网上商城购物时,我们能够通过放大镜效果来使我们看图片能够更加的清楚,今天我就来给大家分享一下我学习的放大镜特效 下图是原图的样子 ...
- MySQL第一讲 一一一一 数据库入门
一. MySQL简介与安装 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方 ...