冒泡排序、选择排序、插入排序 | JavaScript 中的数据结构和算法

冒泡排序、选择排序、插入排序 | javascript 中的数据结构和算法

排序算法是许多计算任务的支柱,在组织数据以实现高效访问和处理方面发挥着至关重要的作用。无论您是刚刚开始探索算法世界的初学者,还是希望刷新知识的经验丰富的开发人员,了解这些基本排序技术都是至关重要的。在这篇文章中,我们将探讨一些更基本的排序算法 – 冒泡排序、选择排序和插入排序。

冒泡排序

冒泡排序是一种简单的、基于比较的排序算法。它重复遍历列表,比较相邻元素,如果顺序错误则交换它们。这个过程一直持续到不再需要交换为止,表明列表已排序。虽然冒泡排序易于理解和实现,但对于大型数据集来说效率较低,因此它主要适用于教育目的和小型数据集。

冒泡排序的时间复杂度为o(n2).

// a random array of 20 numbersconst inputarray = [34, 100, 23, 45, 67, 89, 12, 56, 78, 90, 23, 45, 67, 89, 12, 56, 78, 90, 23, 45]function bubblesort (input) {  const n = input.length  const sortedarray = [...input]  // loop n times  for (let i = 0; i < n; i++) {    // loop through all n-1 pairs    for (let j = 0; j  b, swap; else do nothing      if (sortedarray[j] > sortedarray[j+1]) {        const temp = sortedarray[j]        sortedarray[j] = sortedarray[j+1]        sortedarray[j+1] = temp      }    }  }  return sortedarray}console.log("input:", inputarray)console.log("ouput:", bubblesort(inputarray))

选择排序

选择排序是一种简单的、基于比较的排序算法。它的工作原理是将列表分为已排序区域和未排序区域。它反复从未排序区域中选择最小(或最大)元素,并将其与第一个未排序元素交换,逐渐增大排序区域。选择排序对于大型数据集来说并不是最有效的,但很容易理解,并且具有最小化交换次数的优点。

选择排序的时间复杂度为 o(n2).

// a random array of 20 numbersconst inputarray = [34, 100, 23, 45, 67, 89, 12, 56, 78, 90, 23, 45, 67, 89, 12, 56, 78, 90, 23, 45]function selectionsort (input) {  const n = input.length  const sortedarray = [...input]  // loop n times  for (let i = 0; i < n; i++) {    // start from i'th position    let lowestnumberindex = i    for (let j = i; j < n-1; j++) {      // identify lowest number      if (sortedarray[j] < sortedarray[lowestnumberindex]) {        lowestnumberindex = j      }    }    // swap the lowest number with that in i'th position    const temp = sortedarray[i]    sortedarray[i] = sortedarray[lowestnumberindex]    sortedarray[lowestnumberindex] = temp  }  return sortedarray}console.log("input:", inputarray)console.log("ouput:", selectionsort(inputarray))

插入排序

插入排序是一种直观的、基于比较的排序算法,一次构建一个元素的最终排序列表。它的工作原理是从列表的未排序部分中获取元素并将它们插入到已排序部分中的正确位置。插入排序对于小型数据集或接近排序的数据非常有效,并且在实际应用中经常用作更复杂算法的更简单替代方案。

立即学习“Java免费学习笔记(深入)”;

插入排序的时间复杂度为o(n2).

function insertionSort (input) {  const n = input.length  const sortedArray = [...input]  // loop n times, starting at index 1  for (let i = 1; i = 0; j--) {      // if number in current index is larger than compared number, swap      if (sortedArray[j] > comparedNumber) {        sortedArray[tempIndex] = sortedArray[j]        sortedArray[j] = comparedNumber        tempIndex = j      } else {        // OPTIONAL: else exit        break      }    }  }  return sortedArray}console.log("Input:", inputArray)console.log("Ouput:", insertionSort(inputArray))

总结

虽然冒泡排序、选择排序和插入排序等基本排序算法对于大型数据集可能不是最有效的,但它们为理解算法设计提供了良好的基础。如果您觉得这篇文章有帮助,我很想听听您的想法。在下面发表评论,分享您的见解,或提出您的任何问题 – 我会尽力回答。

编码愉快!

以上就是冒泡排序、选择排序、插入排序 | JavaScript 中的数据结构和算法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1491164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 13:44:26
下一篇 2025年12月19日 13:44:49

相关推荐

发表回复

登录后才能评论
关注微信