程序笔记   发布时间:2022-07-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了五种排序算法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
冒泡排序
const bubbleSort = (arr) => {
 for (let i = 0; i < arr.length; i++) {
  for (let j = i; j < arr.length; j++) {
    if (arr[j] < arr[i]) {
     let cur = arr[j]
     arr[j] = arr[i]
     arr[i] = cur
    }
  }
 }
 return arr
}
快速排序
const quickSort = (arr) => {
 if (arr.length < 2) return arr
 let mid = Math.floor(arr.length / 2)
 let midVal = arr.splice(mid, 1)[0]
 let left = []
 let right = []
 for (let i = 0; i < arr.length; i++) {
  if (arr[i] < midVal) {
   left.push(arr[i])
  } else {
   right.push(arr[i])
  }
 }
 return quickSort(left).concat([midVal], quickSort(right))
}
选择排序
const SELEctSort = (arr) => {
 let min
 let item
 for (let i = 0; i < arr.length; i++) {
  min = i
  for (let j = i; j < arr.length; j++) {
   if (arr[j] < arr[min]) min = j
  }
  item = arr[min]
  arr[min] = arr[i]
  arr[i] = item
 }
 return arr
}
插入排序
const insertSort = (arr) => {
 let index
 let indexVal
 for (let i = 1; i < arr.length; i++) {
  index = i
  indexVal = arr[i]
  while (index > 0 && arr[index - 1] > indexVal) {
   arr[index] = arr[index - 1]
   index--
  }
  arr[index] = indexVal
 }
 return arr
}
归并排序
function mergeSort (arr) {
 if (arr.length < 2) return arr
 let mid = Math.floor(arr.length / 2)
 let left = arr.slice(0, mid)
 let right = arr.slice(mid)
 return merge(mergeSort(left), mergeSort(right))
}

function merge (left, right) {
 let newArr = []
 while (left.length > 0 && right.length > 0) {
  if (left[0] < right[0]) {
   newArr.push(left.shift())
  } else {
   newArr.push(right.shift())
  }
 }
 while(left.length) {
  newArr.push(left.shift())
 }
 while(right.length) {
  newArr.push(right.shift())
 }
 return newArr
}

 

 

大佬总结

以上是大佬教程为你收集整理的五种排序算法全部内容,希望文章能够帮你解决五种排序算法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。