已经准备秋招一段时间了,因为这个关系也在各种巩固知识,顺便整理一下一些东西。这篇文章就是自己整理了一下各种JS的排序算法,以便自己以后回顾。

冒泡排序

function bubbleSort(arr){
var len = arr.length
for(var i=len-1;i>0;i--){
for(var j=0;j<i;j++){
var temp = 0
if(arr[j]>arr[j+1]){
//如果前一个元素大于后一个元素,则交换位置
var temp = 0
temp = arr[j+1]
arr[j+1] = arr[j]
arr[j] = temp
}
}
}
return arr
} var arr = [1,2,5,4,56,54,33,2,23]
bubbleSort(arr) //[1, 2, 2, 4, 5, 23, 33, 54, 56]

  

快速排序

function quickSort(arr){
if(arr.length<1){
return arr
}
//选取基数
var pivotIndex = Math.floor(arr.length/2)
var pivot = arr.splice(pivotIndex,1) var left = [] //放置小于基数的数
var right = [] //防止大于基数的数
for(var i=0;i<arr.length;i++){
if(arr[i]>pivot){
right.push(arr[i])
}else{
left.push(arr[i])
}
}
return quickSort(left).concat(pivot,quickSort(right))
} var arr = [1, 2, 3, 4, 5]
quickSort(arr) //[1, 2, 3, 4, 5]

  

选择排序
将待排序列中最小的值与第一个位置的值交换;
剩下的值中再取最小的值与第二个位置的值交换,以此类推直到所有的顺序都排好。

function selectSort(arr){
var len = arr.length
for(var i=0;i<len-1;i++){
var min = arr[i] //默认先将第i个值列为最小值
var minIndex = i //最小值的下标
for(var j = i+1;j<len;j++){
//从第i个值之后的值开始比较,因为i之前的值已经排好序
if(arr[j]<min){
min = arr[j]
minIndex = j
}
}
//将第i个值与最小值交换位置
arr[minIndex] = arr[i]
arr[i] = min
}
return arr
} var arr = [3,2,13,5,6,7]
selectSort(arr) //[2, 3, 5, 6, 7, 13]

  

插入排序
从第二个元素开始排序;
待排元素之前的元素已经排好序,将待排元素按照大小插入合适的位置,以此类推。

function insertSort(arr){
var len = arr.length
for(var i=1;i<len;i++){
var now = arr[i]
var j = i-1
while(j>=0 && arr[j]>now){
arr[j+1] = arr[j] //数组后移
j--
}
arr[j+1] = now
}
return arr
} var arr = [1,3,2,5,4]
selectSort(arr) //[1, 2, 3, 4, 5]

  

javascript的排序算法的更多相关文章

  1. JavaScript版排序算法

    JavaScript版排序算法:冒泡排序.快速排序.插入排序.希尔排序(小数据时,希尔排序会比快排快哦) //排序算法 window.onload = function(){ var array = ...

  2. javascript高级排序算法之快速排序(快排)

    javascript高级排序算法之快速排序(快排)我们之前讨论了javascript基本排序算法 冒泡排序 选择排序 插入排序 简单复习: 冒泡排序: 比较相邻的两个元素,如果前一个比后一个大,则交换 ...

  3. javascript常用排序算法实现

    毕业后,由于工作中很少需要自已去写一些排序,所以那些排序算法都忘得差不多了,不过排序是最基础的算法,还是不能落下啦,于是找了一些资料,然后用Javascript实现了一些常用的算法,具体代码如下: & ...

  4. javascript常用排序算法总结

    算法是程序的灵魂.虽然在前端的开发环境中排序算法不是很经常用到,但常见的排序算法还是应该要掌握的.我在这里从网上整理了一下常见排序算法的javascript实现,方便以后查阅. 归并排序: 1 fun ...

  5. JavaScript之排序算法

    一.冒泡排序 原理:1.比较相邻的元素.如果第一个比第二个大,就交换两个数:2.对每一对相邻元素重复做步骤一,从开始第一对到结尾的最后一对,该步骤结束会产生一个最大的数:3.针对所有的数重复以上的步骤 ...

  6. JavaScript 实现排序算法

    参考文章: 十大经典排序算法动画,看我就够了! 1. 冒泡排序 思路 比较所有相邻元素,如果第一个比第二个大,则交换它们 一轮下来,可以保证最后一个数是最大的 执行n-1轮,就可以完成排序 代码 Ar ...

  7. JavaScript随机排序算法1

    1.对数组循环,每一项与随机的某一项位置调换 <ul id="listOne"></ul> <div id="tempOne"&g ...

  8. JavaScript实现排序算法总结

    <script type="text/javascript" src="js/laydate.js" > //插入排序 function inser ...

  9. javascript实现排序算法

    准备好好学习js了,js写的第一个排序 先推荐一个js在线编辑工具,RunJS,还不错. 冒泡排序 var arr = [2,4,1,5,3]; function handle(arr){ for(v ...

随机推荐

  1. Telnet端口测试

    $IP ="220.181.111.142"$Port ="801" Function Port-Test ($IP,$Port){ $Timeout = 10 ...

  2. Amazon DynamoDB 概览

    1. 什么是Amazon DynamoDB DynamoDB 是一种快速.全面受管的 NoSQL 数据库服务,它能让用户以简单并且经济有效地方式存储和检索任何数据量,同时服务于任何程度的请求流量.所有 ...

  3. 获得临时文件目录(Temp文件夹)

    C:\Users\ADMINI~1\AppData\Local\Temp\   //GetTempPath获得临时文件目录(Temp文件夹)  function TempPath:String;var ...

  4. yii 隐藏index.php的步骤

    Apache 1.开启apache的mod_rewrite模块       去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号     ...

  5. _vsnprintf 用法

    _vsnprintf,C语言库函数之一,属于可变参数.用于向字符串中打印数据.数据格式用户自定义. 头文件: #include <stdarg.h> 函数声明: int _vsnprint ...

  6. ios5 xcode 4.2 中 release显示编译警告或错误的解决方法

    转自:http://lizi464789754.blog.163.com/blog/static/1689370852011924113245778/ 由于 iOS5 xcode4.2 引入了ARC ...

  7. sqlserver 日期相关2

    1.常用日期方法(下面的GetDate() = '2006-11-08 13:37:56.233') (1)DATENAME ( datepart ,date ) 返回表示指定日期的指定日期部分的字符 ...

  8. mysql数据库问答

    一. 问:如果有一张表,里面有个字段为id的自增主键,当已经向表里面插入了10条数据之后,删除了id为8,9,10的数据,再把mysql重启,之后再插入一条数据,那么这条数据的id值应该是多少,是8, ...

  9. grep时排除指定的文件和目录

    参考:http://winterth.duapp.com/notes/ar03s04.htmlhttp://blog.sina.com.cn/s/blog_7169c8ce0100qkyf.html ...

  10. Node.js module.exports和exports的区别

    require 用来加载代码,而 exports 和 module.exports 则用来导出代码,从接触node.js就不会它们两陌生,上代码: foo.js exports.a = functio ...