JavaScript算法学习之冒泡排序和选择排序

JavaScript算法学习之冒泡排序和选择排序

冒泡排序和选择排序是常见的两种排序算法。在本文中,我们将详细讲解这两种排序算法,并提供代码示例供读者参考。

冒泡排序

冒泡排序是一种简单的排序算法,它通过比较相邻两个元素的大小,依次将最大的元素冒泡到数组的末尾。

以下是冒泡排序的代码示例:

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

const arr = [3, 5, 1, 4, 2];
console.log(bubbleSort(arr)); // [1, 2, 3, 4, 5]

在上述代码中,我们使用了两个循环来实现冒泡排序。外层循环执行 n - 1 次(其中 n 为数组的长度),每次循环都会确定一个最大值。内层循环用来比较相邻两个元素的大小,如果前面的元素比后面的元素大,则交换它们的位置。

选择排序

选择排序是一种简单的排序算法,它每次从数组中选择一个最小的元素,并将其与数组的第一个元素交换位置。然后,再从剩余的元素中选择一个最小的元素,并将它与数组的第二个元素交换位置,以此类推。

以下是选择排序的代码示例:

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

const arr = [3, 5, 1, 4, 2];
console.log(selectionSort(arr)); // [1, 2, 3, 4, 5]

在上述代码中,我们使用了两个循环来实现选择排序。外层循环执行 n - 1 次(其中 n 为数组的长度),每次循环都会确定一个最小值的索引位置。内层循环用来寻找最小值的索引位置,然后将最小值与当前位置进行交换。

以上就是冒泡排序和选择排序的详细讲解和代码示例。大家可以根据这些示例进行练习,并深入研究算法的实现方式和优化方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript算法学习之冒泡排序和选择排序 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • C语言排序方法(冒泡,选择,插入,归并,快速)

    下面是关于C语言排序方法冒泡、选择、插入、归并、快速的详细攻略: 冒泡排序 冒泡排序是一种最简单的排序算法,它的核心思想是从左到右依次比较相邻的两个元素,如果前一个元素大于后一个元素,就交换它们的位置,这样一遍比较后,最大的元素就会被“冒泡”到最右边。然后再对剩余的元素重复同样的操作,这样一直迭代直到整个序列排序完成。 下面是标准的C语言冒泡排序代码示例: …

    算法与数据结构 2023年5月19日
    00
  • Javascript实现快速排序(Quicksort)的算法详解

    Javascript实现快速排序的算法详解 在这个攻略中,我们将通过Javascript实现快速排序算法,并讲解算法的详细过程。 快速排序的基本思想 快速排序是一种基于交换的排序算法,其基本思想是通过选择一个基准元素,在一趟排序过程中,将之前需要排序的序列中的元素分割成两个部分,其中,左边部分元素的值都小于基准元素的值,右边部分元素的值都大于基准元素的值,然…

    算法与数据结构 2023年5月19日
    00
  • python manim实现排序算法动画示例

    首先,为了能够实现“python manim实现排序算法动画示例”,我们需要以下准备工作: 安装python及相关依赖:Manim(用于动画制作)、Numpy(用于数值计算)等。 了解Python编程语言的基础语法和数据类型。 接下来,我们可以按照以下步骤进行排序算法动画制作: 选择一种排序算法,并按照代码形式将其实现。 使用Python的可视化库,将算法过…

    算法与数据结构 2023年5月19日
    00
  • java排序算法图文详解

    Java排序算法图文详解 在Java编程中,排序算法是非常重要且常见的一部分。本文将详细讲解Java中的各种排序算法及其实现,帮助读者了解不同算法的特点和使用场景,提高程序的效率和可读性。 排序算法分类 在Java中,常用的排序算法主要可以分为以下几类: 冒泡排序 选择排序 插入排序 快速排序 归并排序 堆排序 冒泡排序 冒泡排序是一种简单的排序算法,其原理…

    算法与数据结构 2023年5月19日
    00
  • python递归实现快速排序

    Python递归实现快速排序 快速排序是一种常用的排序算法,递归是快速排序算法的重要部分。 快速排序算法步骤 选择一个基准数(pivot)。 将待排序数组分成左右两个子数组,小于等于基准数的元素放在左边,大于基准数的元素放在右边。 递归地对左右两个子数组进行上述排序过程。 Python代码实现 def quick_sort(arr): if len(arr)…

    算法与数据结构 2023年5月19日
    00
  • Java中的数组排序方式(快速排序、冒泡排序、选择排序)

    下面是Java中的数组排序方式的完整攻略。 1. 快速排序 快速排序是常用的一种排序算法,其时间复杂度为O(nlogn)。其基本思想是选择一个基准数,将数组分成左右两部分,比基准数小的放在左边,比基准数大的放在右边,然后再对左右两部分分别递归地进行快速排序。 Java中快速排序的实现基于Arrays类的sort方法。下面是一个示例代码: public sta…

    算法与数据结构 2023年5月19日
    00
  • Lua中写排序算法实例(选择排序算法)

    让我为您详细讲解一下Lua中写排序算法实例(选择排序算法)的完整攻略。 什么是选择排序算法 选择排序是一种简单直观的排序算法,它的工作原理如下: 在待排序的数组中找到最小元素; 将其存放到数组的起始位置; 在剩余未排序的元素中继续寻找最小值,并放到已排序序列的末尾; 重复步骤3,直到待排序序列中的所有元素均已排序完毕。 选择排序的实现思路简单,但由于每次都要…

    算法与数据结构 2023年5月19日
    00
  • PHP 数组排序方法总结 推荐收藏

    PHP 数组排序方法总结 推荐收藏 1. 为什么要学习数组排序 PHP 数组内置的排序函数,能够对数组的元素进行排序,满足不同场景下的需求。理解如何使用数组排序函数能够提高开发效率,并且能够帮助开发者写出更加高效、优雅的代码。 2. PHP 数组排序函数总结 PHP 数组的排序方法主要有以下几种: 2.1 sort() 对数组进行升序排列。 2.1.1 排序…

    算法与数据结构 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部