AI生成-前端排序算法

这篇具有很好参考价值的文章主要介绍了AI生成-前端排序算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端排序算法是指对一组数据进行排序的算法,常用的有冒泡排序、插入排序、选择排序、快速排序、归并排序等。

1. 冒泡排序(Bubble sort)

冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就交换它们。

冒泡排序的时间复杂度为O(n^2),不适用于大规模数据的排序。

示例代码:文章来源地址https://www.toymoban.com/news/detail-500322.html

function bubbleSort(array) {
  const length = array.length
  for (let i = 0; i < length - 1; i++) {
    for (let j = 0; j < length - 1 - i; j++) {
      if (array[j] > array[j + 1]) {
        const temp = array[j]
        array[j] = array[j + 1]
        array[j + 1] = temp
      }
    }
  }
  return array
}

2. 插入排序(Insertion sort)

插入排序就是将未排序的元素一个一个插入到已排序的元素中的正确位置,直到所有元素都排序完成。

插入排序的时间复杂度为O(n^2),稳定的排序算法。

示例代码:

function insertionSort(array) {
  for (let i = 1; i < array.length; i++) {
    let j = i - 1
    const temp = array[i]
    while (j >= 0 && array[j] > temp) {
      array[j + 1] = array[j]
      j--
    }
    array[j + 1] = temp;
  }
  return array
}

3. 选择排序(Selection sort)

选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

选择排序的时间复杂度为O(n^2),不稳定的排序算法。

示例代码:

function selectionSort(array) {
  const length = array.length
  for (let i = 0; i < length - 1; i++) {
    let minIndex = i
    for (let j = i + 1; j < length; j++) {
      if (array[j] < array[minIndex]) {
        minIndex = j
      }
    }
    const temp = array[i]
    array[i] = array[minIndex]
    array[minIndex] = temp
  }
  return array
}

4. 快速排序(Quick sort)

快速排序使用分治法(Divide and conquer)策略来把一个序列分成两个子序列。步骤为:

  1. 从数组中挑出一个元素,称为"基准"(pivot)。
  2. 将数组中比基准元素大的放置在基准的右边,比基准元素小的放置在基准的左边。
  3. 对基准左右两边的子序列进行递归排序。

快速排序的时间复杂度为O(nlogn),不稳定的排序算法。

示例代码:

function quickSort(array) {
  if (array.length <= 1) {
    return array
  }
  const pivotIndex = Math.floor(array.length / 2)
  const pivot = array.splice(pivotIndex, 1)[0]
  const left = []
  const right = []
  for (let i = 0; i < array.length; i++) {
    if (array[i] < pivot) {
      left.push(array[i])
    } else {
      right.push(array[i])
    }
  }
  return [...quickSort(left), pivot, ...quickSort(right)]
}

5. 归并排序(Merge sort)

归并排序的思想是将一组未排序的数组分成两个子序列,对每个子序列递归地进行排序,然后将结果合并起来。

归并排序的时间复杂度为O(nlogn),稳定的排序算法。

示例代码:

function mergeSort(array) {
  if (array.length <= 1) {
    return array
  }
  const midIndex = Math.floor(array.length / 2)
  const left = array.slice(0, midIndex)
  const right = array.slice(midIndex)
  return merge(mergeSort(left), mergeSort(right))
}

function merge(left, right) {
  const result = []
  let leftIndex = 0
  let rightIndex = 0
  while (leftIndex < left.length && rightIndex < right.length) {
    if (left[leftIndex] < right[rightIndex]) {
      result.push(left[leftIndex])
      leftIndex++
    } else {
      result.push(right[rightIndex])
      rightIndex++
    }
  }
  return result.concat(left.slice(leftIndex)).concat(right.slice(rightIndex))
}

到了这里,关于AI生成-前端排序算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Peter算法小课堂—拓扑排序与最小生成树

    讲拓扑排序前,我们要先了解什么是DAG树。所谓DAG树,就是指“有向无环图”。请判断下列图是否是DAG图 第一幅图,它不是DAG图,因为它形成了一个环。第二幅图,它也不是DAG图,因为它没有方向。第三幅图才叫真正的DAG图(DAG图不一定联通)。 那什么叫DAG图的拓扑排序呢

    2024年01月21日
    浏览(49)
  • 【算法入门&图论】【模板】拓扑排序|【模板】单源最短路2 |最小生成树

    ✅作者简介:热爱后端语言的大学生,CSDN内容合伙人 ✨精品专栏:C++面向对象 🔥系列专栏:算法百炼成神 本专栏收录的均为牛客网的算法题目,内含链表、双指针、递归、动态规划、基本数据结构等算法思想的具体运用。牛客网不仅有大量的经典算法题目,也有大厂的面

    2024年02月03日
    浏览(46)
  • 【C++ 二十】STL:遍历、查找、排序、拷贝和替换、算术生成、集合算法

    本文包含STL常用遍历算法(for_each、transform)、STL常用查找算法(find、find_if、adjacent_find、binary_search、count、count_if)、STL常用排序算法(sort、random_shuffle、merge、reverse)、STL常用拷贝和替换算法(copy、replace、replace_if、swap)、STL常用算术生成算法(accumulate、fill)、STL常用集

    2023年04月22日
    浏览(43)
  • 为前端的同志们介绍一下生成式AI(Generating AI)

    生成式AI(Generating AI)是指以人工智能技术为基础,通过学习和生成算法,自动生成新的内容或解决问题的系统。在软件开发领域,生成式AI正在被应用于重塑开发流程和开发工具,以提高开发效率和质量。 生成式AI可以通过学习大量的开发代码和相关文档,理解软件开发的

    2024年01月16日
    浏览(38)
  • AI从截图直接生成代码、前端程序员的福音

    简介 项目可以将任何屏幕截图或设计转换为干净的代码(支持大多数框架)。来自领先公司的开发人员和设计师使用的排名第一的工具。完全开源,在 GitHub 上拥有超过 35,000 颗星。非常受欢迎。 各位小伙伴们感觉有帮助的,可以收藏一下,方便下次找到项目! 项目地址:

    2024年04月13日
    浏览(41)
  • AI与艺术——图像生成网络经典算法

      生成模型是一种训练模型进行无监督学习的模型,即,给模型一组数据,希望从数据中学习到信息后的模型能够生成一组和训练集尽可能相近的数据。图像生成(Image generation,IG)则是指从现有数据集生成新的图像的任务。图像生成模型包括无条件生成和条件性生成两类,

    2024年02月02日
    浏览(33)
  • 【AI算法学习】基于AutoEncoder的生成对抗网络

    \\\" 生成模型 (Generative modeling)\\\"已成为机器学习的一个较为广泛的领域。在图像这种流行数据上,每张图像都有数千数万的维度(像素点), 生成模型的工作就是通过某种方式来捕获像素之间的依赖,而具体捕获哪些依赖关系,就取决于我们想用模型来做些什么 。 通常来讲

    2024年02月01日
    浏览(59)
  • 实战AI生成LeetCode算法答案 应届生开挂利器 GitHub Copilot开启AI自动生成代码的时代

    获取基于 AI 的编码建议 :获取与项目的上下文和样式约定相匹配的代码建议,并循环通过不同的选项来决定接受、拒绝或编辑什么。 使用您喜欢的环境 :将 GitHub Copilot 与流行的编辑器集成,包括 Neovim、JetBrains IDE、Visual Studio 和 Visual Studio Code,作为不显眼的扩展。 在陌生

    2024年02月06日
    浏览(56)
  • [算法前沿]--061-生成式 AI 的发展方向,是 Chat 还是 Agent?

    AI Agent 的定义 AI Agent是一种超越简单文本生成的人工智能系统。它使用大型语言模型(LLM)作为其核心计算引擎,使其能够进行对话、执行任务、推理并展现一定程度的自主性。简而言之,Agent是一个具有复杂推理能力、记忆和执行任务手段的系统。 AI Agent 的主要组成部分:

    2024年02月20日
    浏览(38)
  • TTS算法笔记:MusicLM- Generating Music From Text(AI生成音乐)

    摘要: 介绍了一个以文本作为条件,生成高保真、长时间片的音乐音频。比如文本为“由扭曲的吉他重复段伴奏的平静的小提琴旋律”,MusicLM可以可以根据文本条件,生成24kHz采样率,分钟级别的连续音乐音频。 从摘要中可以得知,这篇文章解决的根本问题其实可以非常简

    2024年02月12日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包