当前位置: 首页 > news >正文

冒泡,选择,插入,快速,归并排序(JavaScript)代码实现

目录

前言

一、冒泡排序

二、选择排序

三、插入排序

四、快速排序

五、归并排序

前言

前端中常见的排序算法。


一、冒泡排序

let arr=[10,6,9,3,5,1,4]function Sort(arr){for (let i = 0; i < arr.length; i++) {for (let j = 0; j < arr.length-i; j++) {if(arr[j]>arr[j+1]){let temp=arr[j]arr[j]=arr[j+1]arr[j+1]=temp}}}return arr
}

二、选择排序

let arr=[10,6,9,3,5,1,4]function Sort(arr) {for(let i=0;i<arr.length;i++){let min=ifor (let j = i+1; j < arr.length; j++) {if(arr[j]<arr[min]){min=j}      }let temp=arr[i]arr[i]=arr[min]arr[min]=temp}return arr
}

三、插入排序

let arr=[10,6,9,3,5,1,4]function Sort(arr){for(let i=0;i<arr.length;i++){let current=arr[i]let j=i-1while (j>=0 && current<arr[j]) {arr[j+1]=arr[j]j--}arr[j+1]=current}return arr
}

四、快速排序

let arr=[10,6,9,3,5,1,4]function Sort(arr){if(arr.length<1) return arr let mid=Math.floor(arr.length/2)let midValue=arr.splice(mid,1)let left=[]let right=[]for (let i = 0; i < arr.length; i++) {if(arr[i]<midValue[0]){left.push(arr[i])}else{right.push(arr[i])}}return [...Sort(left),...midValue,...Sort(right)]
}

五、归并排序

 

let arr=[10,6,9,3,5,1,4]function merge(leftArr,rightArr){let result=[]while (leftArr.length && rightArr.length) {result.push(leftArr[0]<rightArr[0] ? leftArr.shift():rightArr.shift())}return result.concat(leftArr).concat(rightArr)
}function Sort(arr){if(arr.length<=1) return arrlet min=Math.floor(arr.length/2)return merge(Sort(arr.slice(0,min)),Sort(arr.slice(min)))
}


http://www.mrgr.cn/news/57028.html

相关文章:

  • mysql语法时采用了双引号 ““的错误
  • [MySQL课后作业]人事管理系统的SQL实践
  • 酒茶香连锁大平台周浦店签约仪式成功举办,携手并进共创辉煌
  • 创建型模式-----(单例模式)
  • Bitcoin全节点搭建
  • OceanBase 2024 年度发布会|收好这份参会指南
  • 【面试题】什么是SpringBoot以及SpringBoot的优缺点
  • TitanIDE:解锁编程教学新范式
  • 软考科目怎么选?软考科目选哪个好?
  • Cilium Network Policy
  • 【Excel】函数各类公式总结
  • 问丫|快来打造你的专属 AI 数字分身,畅享独特社交体验!
  • 【Trick】IOS系统解决“未受信任的企业级开发者”问题
  • 【Linux系统】Ubuntu的简单操作
  • 探秘 ArrayList:源码剖析与扩容策略
  • 虚拟内存与物理内存:计算机存储系统的核心要素
  • ETLCloud搭配MySQL | 让关系型数据库更智能
  • 中国云厂出海:如何绕过暗礁,找到宝藏?
  • vue3.0 + vite打包完成后,将dist下的资源包打包成zip
  • 用哪种建站程序做谷歌SEO更容易?
  • DAG和Steps
  • C++ 红黑树
  • 接口测试 —— Postman 变量了解一下!
  • 提高爬虫性能的 5 个关键技巧:从并发到异步执行
  • 【Linux】僵尸进程和孤儿进程
  • 【算法笔记】前缀和算法原理深度剖析(超全详细版)