几大排序算法js实现

冒泡排序

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. 具体实现

... 未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,746评论 0 15
  • 该系列文章主要是记录下自己暑假这段时间的学习笔记,暑期也在实习,抽空学了很多,每个方面的知识我都会另起一篇博客去记...
    Yanci516阅读 12,282评论 6 19
  • Ba la la la ~ 读者朋友们,你们好啊,又到了冷锋时间,话不多说,发车! 1.冒泡排序(Bub...
    王饱饱阅读 1,815评论 0 7
  • 夜雨对我是一个有非常强带入感的词汇,并且专属于秋天,春夏冬晚上的雨就无法引起这么强烈的情感共鸣。 在我的喜好里,夜...
    Exorcist阅读 176评论 1 0
  • 激励管理术:让团队成员保持专注 个人 重新定义你的工作,使之具有挑战性,从而对你产生吸引力 循序渐进地实现目标 寻...
    啊亮亮阅读 576评论 0 0