用JavaScript实现十大经典排序算法

      排序算法是最基本最常用的算法,不同的排序算法在不同的场景或应用中会有不同的表现,我们需要对各种排序算法熟练才能将它们应用到实际当中,才能更好地发挥它们的优势。之前学习的排序算法都是用c或者c++实现的,没有用过Javascript实现过,通过查阅资料,决定自己总结一下这十个排序算法。

排序算法的说明

1、定义

       输入:n个数:a1,a2,a3,...,an
       输出:n个数的排列:a1',a2',a3',...,an',使得a1'<=a2'<=a3'<=...<=an'。
       通俗来说,如果现在有10个人要进行排队,按照身高高度来排,就是矮的站在前面,高的站在后面。

2、对算法的评价

1)稳定性

        稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;
        不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;

       稳定排序:冒泡排序、插入排序、选择排序、归并排序、基数排序、基数排序、桶排序;

       不稳定排序:快速排序、希尔排序、堆排序;

2)内存使用

      内排序:所有排序操作都在内存中完成;
      外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;

      内排序:插入排序、选择排序、冒泡排序、堆排序、快速排序、希尔排序;

      外排序:归并排序、计数排序、基数排序、桶排序;

3)时间复杂度

      时间复杂度: 一个算法执行所耗费的时间。
      空间复杂度: 运行完一个程序所需内存的大小。

4)算法分类

      交换排序:冒泡排序、快速排序

      插入排序:直接插入排序、希尔排序

      选择排序、直接选择排序、堆排序

      合并排序:归并排序

      其他排序:基数排序、计数排序、桶排序

5)总结

      对各种算法进行对比,用图表说明,如下所示:


图片名词解释:
       n : 数据规模;
       k :“桶”的个数;
       In-place:  占用常数内存,不占用额外内存;
       Out-place : 占用额外内存;


以下是分别进行介绍:

1、用JavaScript实现十大经典排序算法--选择排序

2、用JavaScript实现十大经典排序算法--冒泡排序

3、用JavaScript实现十大经典排序算法--插入排序



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值