美文网首页
几大排序算法js实现

几大排序算法js实现

作者: 小王啊_ | 来源:发表于2017-06-25 17:52 被阅读0次

冒泡排序

1 具体实现

// 冒泡排序
function bubbleSort(arr) {
    let len = arr.length;
    let temp;
    for (var i=0; i<len; i++) {
        for(var j = 0; j<len-i-1; j++ ) {
            if (arr[j] > arr[j+1]) {
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp; 
            }
        }
    }
}

2 分析

耗时

通过函数图像很容易得到:


函数图

由以上可以得到冒泡排序的时间复杂度为:
F(n) = O(n^2)

选择排序

1 具体实现


// 选择排序
function selectSort(arr) {
    let len = arr.length;
    for(var i=0; i<len-1; i++) {
        let smallIndex = i;
        let temp;
        for(var j=i+1; j<len; j++) {
            if (arr[j] < arr[smallIndex]) {
                smallIndex = j;
            }
        }
        temp = arr[i];
        arr[i] = arr[smallIndex];
        arr[smallIndex] = temp;
    }
}

2 分析
很明显,可以看出选择排序和冒泡排序的时间复杂度一致,都是 O(n^2) 。

插入排序

1 具体实现

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

2 分析
很明显,可以看出插入排序和冒泡排序的时间复杂度一致,都是 O(n^2) 。

快速排序

  1. 具体实现

... 未完待续

相关文章

  • 几大排序算法js实现

    冒泡排序 1 具体实现 2 分析 通过函数图像很容易得到: 由以上可以得到冒泡排序的时间复杂度为:F(n) = O...

  • 数组的排序算法的实现

    数组的排序算法 关于排序算法请看这篇文章。本文尝试使用js来实现一部分简单的算法。 选择排序 思路:若要从小到大排...

  • JavaScript 实现多种排序算法

    本章将介绍 JavaScript 如何实现排序,几种排序算法介绍如下图: 准备工具函数 util.js 备用: 借...

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • JS实现排序算法

    冒泡排序 遍历数组,每次遍历将最大(or最小)的数推到最前面 选择排序 在无序区中选择最小的数,将其与无序区第一个...

  • js实现排序算法

    本文实现了冒泡排序 选择排序和快速排序,本文中的优化并不彻底,快速排序的时间 并不一定总是下于其他方法的时间,运行...

  • JS实现排序算法

    总结下用js实现排序的几种普遍方法: 1. 冒泡排序 原理: 依次比较相邻的两个元素,如果后一个小于前一个,则交换...

  • JS实现排序算法

    原文:常见排序算法之JavaScript实现 - 知乎 目录 冒泡排序 选择排序 插入排序 合并排序 快速排序 1...

  • 排序算法js实现

    一.冒泡排序 二.选择排序 三.插入排序 四.希尔排序 五.归并排序 六.快速排序 转载于:https://www...

  • js 实现排序算法

    1:桶排序 2:冒泡排序 3:选择排序 思想:把最小的放在第一位选择剩下的:把最小的放在第一位 4、快速排序 原理...

网友评论

      本文标题:几大排序算法js实现

      本文链接:https://www.haomeiwen.com/subject/lfqrcxtx.html