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序列化技术
转自:http://blog.csdn.net/yakihappy/article/details/3979373 Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地 ...
- Swift-表格
//1.创建表格 let tv = UITableView(frame: view.bounds, style: .Plain) //2.添加到视图 view.addSubview(tv) //3.注 ...
- ps_cc:制作sprite拼贴图片
我们的目标是: 将 合并为一张图片 step1:制作动作,便于批处理和重复使用 首先随便新建空白文档(建议:90x300px) 录制动作,alt+F9 上图中,可以新建分组前端,再新建动作 ...
- Android Studio Git 分支实践
新公司有些项目是用的 Git,以前公司都是 svn,为了练手 Git,我个人 APP 用到了,但是仅简单的 git pull/push 的使用,并未用到 Git 精髓,只有当项目中用到,才会紧迫去全面 ...
- 快速排序c语言实现
#include <stdio.h> void quick_sort(int* a, int n) { ) return; int i,j,tmp,k; k = a[n/]; ,j = n ...
- Bootstrap开发
1.BootStrap开发工具 任意前端工具 专门Bootstrap工具:Jetstrap(下载地址:jetstrap.com) 2.官网: www.bootcss.com(“下载Bootstrap” ...
- Help for enable SSL 3.0 and disable TLS 1.0..
https://support.mozilla.org/en-US/questions/967266 i cant find tab Encryption for enable SSL 3.0 and ...
- HUE安装与使用
HUE安装与使用 1.介绍 HUE是一个开源的Apache Hadoop UI系统,早期由Cloudera开发,后来贡献给开源社区.它是基于Python Web框架Django实现的.通过使用Hue我 ...
- 开始用PyTorch
怎么说呢,TensorFlow有些实现过于蛋疼,我需要使用更实用的框架. 目前在读https://github.com/chenyuntc/pytorch-book
- 给网站添加图标: Font Awesome
先贴上各种图标的网址:https://fontawesome.com/?from=io 1.打开网址,我们可以看到: 像我这种英语不好的,直接用谷歌浏览器进行翻译中文好了,自己还是有点B数的····· ...