JS 常见排序算法
来源:互联网 发布:君将哀而生之乎的生 编辑:程序博客网 时间:2024/06/07 18:28
- 冒泡排序
function bubbleSort(myArray){ var len = myArray.length; var i; var j; var stop; for (i = 0; i < len - 1; i++){ for (j = 0, stop = len - 1 - i; j < stop; j++){ if (myArray[j] > myArray[j + 1]){ swap(myArray, j, j + 1); } } } return myArray;}function swap(myArray, p1, p2){ var temp = myArray[p1]; myArray[p1] = myArray[p2]; myArray[p2] = temp;}var myArray = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]var result = bubbleSort(myArray)console.log(result)
- 选择排序
function selectionSort(myArray){ var len = myArray.length, min; for (i=0; i < len; i++){ // 将当前位置设为最小值 min = i; // 检查数组其余部分是否更小 for (j=i+1; j < len; j++){ if (myArray[j] < myArray[min]){ min = j; } } // 如果当前位置不是最小值,将其换为最小值 if (i != min){ swap(myArray, i, min); } } return myArray;}function swap(myArray, p1, p2){ var temp = myArray[p1]; myArray[p1] = myArray[p2]; myArray[p2] = temp;}var myArray = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]var result = selectionSort(myArray)console.log(result)
- 快速排序
var quickSort = function(myArray) { // 当被分的数组只剩一个时,退出递归 if (myArray.length <= 1) { return myArray; } // 中间基准值的index var pivotIndex = Math.floor(myArray.length / 2); // 基准值 var pivot = myArray.splice(pivotIndex, 1)[0]; var left = []; var right = []; // 小的放左边,大的放右边 for (var i = 0; i < myArray.length; i++) { if (myArray[i] < pivot) { left.push(myArray[i]); } else { right.push(myArray[i]); } } // 递归 // 把数组合并在一起 return quickSort(left).concat([pivot], quickSort(right));};var myArray = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]var result = quickSort(myArray)console.log(result)
其他排序方法,详见github:https://github.com/zhengchangshun/js-sortAlgorithm
阅读全文
0 0
- JS 常见排序算法
- 常见的JS排序算法
- js实现常见排序算法
- [原创]常见排序算法 JS 版
- js实现常见的排序算法
- 常见排序算法(js实现)
- JS中常见的一些排序算法
- js中常见的排序算法
- 常见的排序算法
- 常见排序算法
- 常见排序算法代码
- 常见排序算法
- 常见排序算法总结
- 常见排序算法
- 常见排序算法学习
- 常见排序算法总结
- 常见的排序算法
- 常见排序算法分析
- lucene源码-lock和directory--3
- JAVA2222
- 用css写三角形
- 加密操作技巧总结
- [树状数组]51 Nod 1711——平均数
- JS 常见排序算法
- Apache支持wsgi爬坑记录
- PCIe SSD固件签名技术解读
- JSP路径写法问题
- JavaScript权威指南中项目代码 关于银行贷款的
- 洛谷P1516 青蛙的约会
- highcharts3D饼图统计
- create a new ROS package
- Spark RDD、DataFrame和DataSet的区别