js数组快速排序和冒泡排序
2024-09-06 12:22:40
1.快速排序
var arr = [1, 2, 5, 6, 3, 1, 4];
function mySort(arr) {
if (arr.length <= 1) {
return arr;
}
// 获取中间值的索引
var len = Math.floor(arr.length / 2);
// 截取中间值
var middle = arr.splice(len, 1);
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++) {
if (middle > arr[i]) {
left.push(arr[i])
} else {
right.push(arr[i])
}
}
return mySort(left).concat(middle, mySort(right))
}
console.log(mySort(arr))//[ 1, 1, 2, 3, 4, 5, 6 ]
2.冒泡排序
思想:冒泡排序思想:每一次对比相邻两个数据的大小,小的排在前面,如果前面的数据比后面的大就交换这两个数的位置
要实现上述规则需要用到两层for循环,外层从第一个数到倒数第二个数,内层从外层的后面一个数到最后一个数
var bubbleSort=function(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){//如果前面的数据比后面的大就交换
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}
console.log("The result is:"+bubbleSort(arr));
最新文章
- C#创建安全的栈(Stack)存储结构
- 解决:sudo: 无法解析主机:dinphy-500-310cn: 连接超时
- 【python】python定时器
- 操作素有的ul的元素
- ASP.NET 5 入门 (3) – Logging
- Backbone源码解析(一):Event模块
- 获取jsp页面的宽和高
- 条款38:通过聚合设计has-a或者is-implemented-in-terms-of
- Python【基础第四篇】
- HighCharts常用设置(摘抄笔录)
- python学习之旅:array 转 list
- 打印 上一主题 下一主题 利用cURL实现单个文件分多段同时下载,支持断点续传(修订版)
- ngCookies模块
- 3891: [Usaco2014 Dec]Piggy Back
- iOS微信内存监控
- 修改phpcms中的评论样式
- macOS &; USB stick
- HTML5 头部【快速编写】
- vue 后退不刷新页面
- 数据分析报告格式zz