冒泡排序:

原理:比较相邻的元素,将值大的元素交换到右边。(如果相等不进行交换)

实例:

要排列数组:[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数组排序冒泡排序和快速排序的更多相关文章

  1. 整理的最全 python常见面试题(基本必考)

    整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...

  2. 面试题常考&必考之--js闭包特性和优缺点 (外加小例子)

    当内部函数被返回到外部并保存时,一定会产生闭包.闭包会产生原来的作用域链,不释放. 闭包,可以理解为,写一个函数,然后产生闭包的这种现象. 概念: 基础: 主要是:add    reduce  被返回 ...

  3. 面试题常考&必考之--js中的难点!!!原型链,原型(__proto__),原型对象(prototype)结合例子更易懂

    1>首先,我们先将函数对象认识清楚: 补充snow的另一种写法: var snow =function(){}; 2>其次:就是原型对象 每当我们定义一个函数对象的时候,这个对象中就会包含 ...

  4. 面试题常考&必考之--js中的数组去重和字符串去重

    1.引入:首先得知道数组没有可以直接去重的方法,即直接[].unique()是不支持的, 会报“Uncaught TypeError: [].unique is not a function”错误, ...

  5. 面试题常考&必考之--js中的对象的浅拷贝和深拷贝(克隆,复制)(下)

    这里主要是讲深拷贝: 深拷贝:个人理解就是拷贝所有的层级 1.像对象里再放数组和对象这些叫引用值.开始我们先判断大对象中是否有引用值(数组和小对象), 然后在判断引用值是数组还是对象 2.开始啦: 1 ...

  6. 面试题常考&必考之--js中的call()和apply()

    apply: 接受两个参数,第一个参数是要绑定给this的值,第二个参数是一个参数数组.当第一个参数为null.undefined的时候,默认指向window. call: 第一个参数是要绑定给thi ...

  7. 面试题常考&必考之--http访问一个页面的全流程(Tcp/IP协议)

    分析:-http访问一个页面的全流程,也就好比我们在地址栏输入地址,然后点击回车进行访问 该面试题的主要考点是:计算机网络的TCP/IP协议栈 描述图片:首先应用层提交http请求,传到传输层后由,T ...

  8. 前端面试题常考&必考之--跨域的解决办法

    1.为啥出现跨域??? 在制定Html规则时,为了安全的考虑,一个源的脚本(网页,网站)不能与另一个源的资源进行交互, 所以就引发一个词叫做“同源策略”. 同源策略:同源策略是一种约定,它是浏览器最核 ...

  9. 前端面试题常考&必考之--用jquery写出当前元素的同辈元素的第二个结点的value值

    问题:用jquery写出当前元素的同辈元素的第二个结点的value值??? 分析:该题目有一个坑,那就是,如果当前元素没有第二个兄弟结点呢(坑坑坑) 解析: 一般我们可能会这样写: $(this).s ...

随机推荐

  1. [Mac Terminal] ___MAC终端清屏快捷键

    清全屏: command + K 清上一行命令:command +  L

  2. python学习-第四天补充-面向对象

    python学习-第四天补充-面向对象 python 私有 --name mangling(名字修改.名字) 在命名时,通过使用两个下划线作为开头,可以使得这个变量或者函数编程私有的,但是这个其实的p ...

  3. Centos7 yum安装LNMP

    1.Centos7系统库中默认是没有nginx的rpn包的,所以我们需要先更新下rpm依赖库 (1):使用yum安装nginx,安装nginx库 rpm -Uvh http://nginx.org/p ...

  4. tensorflow学习笔记五----------逻辑回归

    在逻辑回归中使用mnist数据集.导入相应的包以及数据集. import numpy as np import tensorflow as tf import matplotlib.pyplot as ...

  5. PyCharm中运行同一个python程序时选择平行窗口运行

    问题描述 当我们进行Socket编程时,客户端可能有多个,原则上如果有n个客户端,那么我们就要编辑n客户端的代码.然而其实我们每个客户端的代码都是相同,如果编辑n遍,将会相当的浪费空间. 解决办法 学 ...

  6. Android remote gdb

    On Android phone adb push ~/utils/android-ndk-r12b/prebuilt/android-arm64/gdbserver/gdbserver /data/ ...

  7. ubuntu系统更新命令

    一.图形界面更新升级 1.点击”系统设置“,打开“软件和更新”,切到“更新”栏目进行更新设置. 2.可以通过软件更新器进行更新升级自己想要更新的 二.命令方式更新升级 1.先解锁 ps -e|grep ...

  8. SQL性能优化概要

    基本概要 1.查询的模糊匹配时,避免使用Like '%开头',使得索引失效 2.索引问题 ◆ 避免对索引字段进行运算操作和使用函数 ◆ 避免在索引字段上使用not,<>,!= ◆ 避免在索 ...

  9. UDP即时小通信

    package 第十二章; import java.io.IOException; import java.net.*; public class UDPServer { /*** * * @para ...

  10. 关于express 连接 mongodb数据库报错

    关于express 连接 mongodb数据库报错 nodejs DeprecationWarning: current URL string parser is deprecated, and wi ...