javascript冒泡排序小结

JavaScript冒泡排序小结

什么是冒泡排序

冒泡排序是一种经典排序算法,它重复地走访过要排序的数列,每次比较相邻的两个元素,如果顺序不对则交换它们,直到没有需要交换的元素为止。

冒泡排序的步骤

冒泡排序的主要步骤如下:

  1. 比较相邻的元素。如果第一个比第二个大,就交换它们;
  2. 对每一对相邻的元素做同样的工作,从开始的第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
  3. 针对所有的元素重复以上的步骤,除了最后一个;
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一个数需要比较。

冒泡排序的代码示例

示例1

下面是一个经典的冒泡排序算法的 JavaScript 实现代码:

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

// 示例代码的使用
var arr = [3, 8, 2, 7, 1, 6, 4, 5];
console.log(bubbleSort(arr)); // 输出 [1, 2, 3, 4, 5, 6, 7, 8]

示例2

下面是另外一个冒泡排序的 JavaScript 实现,它可以按照升序或者降序排序:

function bubbleSort(arr, order) {
  var len = arr.length,
      i, j, temp;
  for (i = 0; i < len - 1; i++) {
    for (j = 0; j < len - 1 - i; j++) {
      if (order === 'desc') {
        if (arr[j] < arr[j + 1]) { 
          temp = arr[j + 1]; 
          arr[j + 1] = arr[j]; 
          arr[j] = temp; 
        } 
      } else {
        if (arr[j] > arr[j + 1]) { 
          temp = arr[j + 1]; 
          arr[j + 1] = arr[j]; 
          arr[j] = temp; 
        } 
      }
    } 
  } 
  return arr;
}

// 示例代码的使用
var arr = [3, 8, 2, 7, 1, 6, 4, 5];
console.log(bubbleSort(arr, 'asc')); // 输出 [1, 2, 3, 4, 5, 6, 7, 8]
console.log(bubbleSort(arr, 'desc')); // 输出 [8, 7, 6, 5, 4, 3, 2, 1]

通过上面两个示例,我们可以看到冒泡排序算法的具体实现方法,并且还介绍了一些常见的优化方法。在实际开发中,如果你需要排序一个数组,你可以根据自己的实际情况选择合适的冒泡排序算法来使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript冒泡排序小结 - Python技术站

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

相关文章

  • C语言算法练习之数组元素排序

    C语言算法练习之数组元素排序攻略 1. 题目描述 给定一个整数数组,要求将其元素按照从小到大排序,并输出排序后的结果。要求不使用C语言中内置的排序函数。 2. 解题思路 可以通过选择排序、冒泡排序和快速排序等多种算法来解决这个问题。在这里我们介绍一种比较简单易懂的冒泡排序算法。 冒泡排序算法的核心思想是将相邻两个元素进行比较,并将较小的元素移到前面,重复这个…

    算法与数据结构 2023年5月19日
    00
  • C语言下快速排序(挖坑法)详解

    C语言下快速排序(挖坑法)详解 什么是快速排序 快速排序是将一个待排序的序列分成两部分,其中一部分的所有元素都比另一部分的所有元素小,然后再对这两部分分别进行排序,递归执行该操作直到将整个序列排好为止。快速排序使用了分治思想。由于在每一次的递归过程中,都将待排序的序列分成两部分,因此处理的数据量不断减少,使得算法的效率比较高。 快速排序的实现 挖坑法 挖坑法…

    算法与数据结构 2023年5月19日
    00
  • C++ sort排序之降序、升序使用总结

    C++ sort排序之降序、升序使用总结 介绍 sort函数是C++ STL库提供的一种排序函数,可以快速方便地对数组或容器进行排序。本文将详细介绍sort函数的用法,包括排序方式、自定义比较函数和对容器的排序等内容。 基本用法 sort函数的声明如下: template <class RandomAccessIterator> void sor…

    算法与数据结构 2023年5月19日
    00
  • 七大经典排序算法图解

    “七大经典排序算法图解”攻略 简要介绍 “七大经典排序算法图解”是一篇介绍常见排序算法的文章。通过对每个算法的思想、代码实现和性能分析进行详细讲解,帮助读者更好地理解和掌握排序算法。 算法列表 本文介绍的七个排序算法如下: 冒泡排序 插入排序 选择排序 快速排序 归并排序 堆排序 希尔排序 冒泡排序 冒泡排序是一种简单的排序算法,它基于交换相邻元素的思想。具…

    算法与数据结构 2023年5月19日
    00
  • python KNN算法实现鸢尾花数据集分类

    Python实现KNN算法对鸢尾花数据集进行分类 介绍 KNN(K-Nearest-Neighbor)算法是一种非常常用且简单的分类算法之一。它的基本思想是把未知数据的标签与训练集中最邻近的K个数据的标签相比较,得票最多的标签就是未知数据的标签。本文将介绍如何使用Python实现对鸢尾花数据集进行KNN分类。 步骤 加载数据 首先,我们需要加载鸢尾花数据集。…

    算法与数据结构 2023年5月19日
    00
  • c#实现选择排序的示例

    C#实现选择排序主要包含以下步骤: 定义数组 遍历数组,选出最小元素,并记录其索引 交换当前索引和最小值索引的元素 循环执行步骤2和步骤3,直到整个数组排序完成 以下是实现选择排序的C#示例: 示例1: int[] arr = new int[]{5, 3, 9, 1, 7, 4}; for (int i = 0; i <arr.Length; i++…

    算法与数据结构 2023年5月19日
    00
  • C语言排序算法之选择排序(直接选择排序,堆排序)

    C语言排序算法之选择排序 选择排序概述 选择排序是一种简单直观的排序算法,其基本思想是:每一趟从数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列最后,直到全部数据元素排完为止。 选择排序算法的时间复杂度为O(n^2),在数据规模较小时效率较高,但是在数据规模较大时效率较低。 选择排序示例 以下是一个使用选择排序算法对数组进行排序的示例: #in…

    算法与数据结构 2023年5月19日
    00
  • JS排序之冒泡排序详解

    JS排序之冒泡排序详解 简介 冒泡排序是最基本,也是最容易实现的排序算法之一。它的基本思想是通过多次循环遍历数组,每次比较相邻两个元素的大小,如果发现顺序不对,就交换它们的位置,通过多次遍历和交换的操作,最终使得整个数组变得有序。 基本思路 遍历数组,将相邻元素的大小进行比较,如果前面元素大于后面元素,则交换它们的位置; 继续以相同的方式遍历数组,直到数组中…

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