js常用的2中排序方法:冒泡排序和快速排序
冒泡排序:例如9 4 5 6 8 3 2 7 10 1
首先:9和4比较 4放前 4 9 5 6 8 3 2 7 10 1
4和5比较 4不动 4 9 5 6 8 3 2 7 10 1
4和6比较 4不动 4 9 5 6 8 3 2 7 10 1
4和3比较 3放前 3 9 5 6 8 4 2 7 10 1
3和2比较 2放前 2 9 5 6 8 4 3 7 10 1
最后第一轮为:1 9 5 6 8 4 3 7 10 2 通过第一轮最小的数放到了第一个
平均时间复杂度:o(n平方);
最大时间复杂度:o(n平方)
最小时间复杂度:o(n)
稳定性:稳定 a在b前面 当a=b时 仍然在前面
快速排序:
例如:10 5 81 54 6 14 76 13
设置i 和 j 分别指向 10 和13
首先 j从后往前找比10小的数 找到6 并交换 10和6的位置
得到: 6 5 81 54 10 14 76 13
现在将i往后移一位 i=5 j=10;
让i从前往后找比10大的数 找到81 交换81和10的位置,得
6 5 10 54 81 14 76 13
现在i=10 j=81;
让j从后往前找比10小的数 找不到
故第一轮排序为:6 5 10 54 81 14 76 13 通过第一轮:比10大的数在右边,比10小的数全在左边
平均时间复杂度:o(nlogn);
最大时间复杂度:o(n平方)
最小时间复杂度:o(nlogn)
稳定性:不稳定
js常用的2中排序方法:冒泡排序和快速排序的更多相关文章
- 第60天:js常用访问CSS属性的方法
一. js 常用访问CSS 属性的方法 我们访问得到css 属性,比较常用的有两种: 1. 利用点语法 box.style.width box.style.top 点语法可以得到 ...
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现) 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现) 程序员必知的8大排序(三)-------冒 ...
- Python八大算法的实现,插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。
Python八大算法的实现,插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 1.插入排序 描述 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得 ...
- [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序
用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html 目录 马桶排序(令人 ...
- js常用内置对象及方法
在js中万物皆对象:字符串,数组,数值,函数...... 内置对象都有自己的属性和方法,访问方法如下: 对象名.属性名称: 对象名.方法名称 1.Array数组对象 unshift( ) 数组开 ...
- 【JS面试向】选择排序、桶排序、冒泡排序和快速排序简介
新年伊始,又到了金三银四的时候了.面对前端越来越多的算法面试题,我简单的整理了一下几种比较常见的数组排序方式,分别介绍其基本原理和优劣势.(ps:才疏学浅,希望大家可以在issues下面指出问题) 选 ...
- js调DLL类库中的方法实现(非com组件形式)
1.首先,创建一个Web空项目 2.添加一个html或aspx页面 3.页面代码如所示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...
- Python中排序方法sort、函数sorted的key参数的作用分析
从Python2.4开始,list.sort方法 和 sorted方法 都增加了一个 'key' 参数用来在进行比较之前指定每个列表元素上要调用的函数,将函数的返回值作为比较的依据. 那么怎么使用这个 ...
- js调用父窗口中的方法
window.open调用父窗口中的方法 回调函数: function fun9(ex){ alert(ex); } 调用语句: window.open("RoomSelecter.htm? ...
随机推荐
- css内容整理1
1.css引入的四种方式1.行内2.内嵌3.链接 <link href="1.css" rel="stylesheet">4.导入@import u ...
- 相同datatable合并
- wpf 查找父元素、子元素方法
1 /// <summary> 2 /// 根据类型查找子元素 3 /// </summary> 4 /// <typeparam name="T"& ...
- Akka探索第一个例子by fsharp 1
如何构建一套分布式程序一直是我想知道的问题. Akka就是一套用来开发分布式系统的开发库.当然开发分布式系统只是它的能力之一.除此之外高度抽象的并行运算能力,轻量级的消息系统,容错能力都是该库的特点. ...
- Hibernate系列3-----之修改
只是修改测试类,先看其他的代码的同学,请翻看我的博客Hibernate1,嘿嘿,我就在这不在重写一遍来 @Test public void testhibernate() { updateStuden ...
- Python人工智能之初识接口
本节需要的两个工具: 1.FFmpeg: 链接:https://pan.baidu.com/s/1jonSAa_TG2XuaJEy3iTmHg 密码:w6hk 2.baidu-aip: pip ins ...
- javascript中如何实现继承
javascript中如何实现继承 // 原型方式的'继承' function Person(name) { //定义一个Person的构造函数 this.name = name; //添加属性 } ...
- 浅谈position、table-cell、flex-box三种垂直(水平)居中技巧
一.首先是喜闻乐见的position方法,经典且万能,用法如下: 父元素{ position:relative; } 子元素{ position:absolute; top:50%; left:50% ...
- 转:Windows任务计划实现自动执行ArcGIS相关功能
今天一不小心点开了Windows任务计划,以前咩有怎么用过,发现还挺好用,于是想到了以前用户的一些问题 1:用户环境使用ArcSDE服务连接,每次运行到一定的负载量(可能是几天),就会很慢,用户就喜欢 ...
- 【Angular JS】网站使用社会化评论插件,以及过程中碰到的坑
目前正在开发自己的网站,技术上使用Angular JS + Express JS + Mongo DB.由于网站会有文章发布,因此需要有评论功能.评论功能也可以自己开发,但由于现在社会化评论插件很多, ...