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? ...
随机推荐
- java解析json串常识
注意:JSONObject 和JSONArray的使用区别 报错:A JSONObject text must begin with '{' at character 1 of 分析: JSONOb ...
- CheckBox全选、取消全选
关于CheckBox全选取消全选 //全选 $("#SysAllSelectedID").click(function () { $("[name=SysCheckbox ...
- EntityFramework报错
解决:未能加载文件或程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089” 使用 ...
- <Android 基础(八)> Palette
介绍 Palette, 英文翻译,调色板,意思比较接近,Google给它的定位应该是颜色萃取器. 看下Source Code Palette , A helper class to extract p ...
- Eclipse plug-in startup
Plug-in Startup !SESSION 2013-09-02 16:28:29.546 -----------------------------------------------ecli ...
- selnium截屏操作
这个算是难找的.C# ITakeScreenShot 接口来实现截图.不是ScreenShot这个坑弄了很长时间啊. var folderLocation = Environment.CurrentD ...
- python-rrdtool
https://nagios-plugins.org/doc/guidelines.html nagios检测信息 host GPING OK – rtt min/avg/max/mdev = 0.8 ...
- 如何让Oracle数据库保持优良性能的方法
OracleDatabase,又名OracleRDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracle数据库系统是目前世界上流行 ...
- Js Date类型
一:格式化方法 var box=new Date(); //标准时间,如果没传参数,得到的时间为当前时间 //alert(Date.parse('4/12/2007')); //11763072000 ...
- ubuntu linux double tab
在terminal中,输入部分指令,再按两下Tab键,可以显示以相关的指令