热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

常用排序算法有哪些?十大经典排序算法总结

知了堂姐
2024-07-09 11:12:24
0
        常用排序算法有哪些?算法和数据结构在高级编程语言学习中非常重要,因为算法和数据结构是一个程序的灵魂。今天我们就来看看这十大常用排序算法。

十大经典排序算法

        冒泡排序
        冒泡排序是排序算法中较为简单的一种,英文称为Bubble Sort。它遍历所有的数据,每次对相邻元素进行两两比较,如果顺序和预先规定的顺序不一致,则进行位置交换;这样一次遍历会将最大或最小的数据上浮到顶端,之后再重复同样的操作,直到所有的数据有序。
        选择排序
        选择排序简单直观,英文称为Selection Sort,先在数据中找出最大或最小的元素,放到序列的起始;然后再从余下的数据中继续寻找最大或最小的元素,依次放到排序序列中,直到所有数据样本排序完成。
        插入排序
        基本思路是先将待排序序列的第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列;然后从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置,直到所有数据都完成排序;如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。
        希尔排序
        希尔排序也称递减增量排序,希尔排序在插入排序的基础上进行了改进,它的基本思路是先将整个数据序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录基本有序时,再对全部数据进行依次直接插入排序。
         归并排序
         该算法是采用分治法的一个非常典型的应用。它首先将数据样本拆分为两个子数据样本, 并分别对它们排序, 最后再将两个子数据样本合并在一起; 拆分后的两个子数据样本序列, 再继续递归的拆分为更小的子数据样本序列, 再分别进行排序, 直到最后数据序列为1,而不再拆分,此时即完成对数据样本的最终排序。


十大经典排序算法

         快速排序
         快速排序使用分治法策略来把一个序列(list)分为两个子序列(sub-lists)。首先从数列中挑出一个元素,并将这个元素称为「基准」,英文pivot。重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(相同的数可以到任何一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。之后,在子序列中继续重复这个方法,直到最后整个数据序列排序完成。
         堆排序
          堆排序,英文称Heapsort,是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。
        计数排序
         计数排序英文称Counting sort,是一种稳定的线性时间排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于 i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。
       桶排序
       桶排序也称为箱排序,英文称为 Bucket Sort。它是将数组划分到一定数量的有序的桶里,然后再对每个桶中的数据进行排序,最后再将各个桶里的数据有序的合并到一起。


十大经典排序算法

       基数排序
        基数排序英文称Radix sort,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串和特定格式的浮点数,所以基数排序也仅限于整数。它首先将所有待比较数值,统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。
        常用排序算法有哪些?以上就是知了姐总结的十大经典排序算法,希望可以帮助到你。

大家都在看

知了堂为成都理工大学学子开展线上项目实训课程

2024-07-09 浏览次数:0

网络安全培训毕业之后可以做什么?这些岗位网络安全...

2024-07-09 浏览次数:0

陕西理工数学与计算机学院副院长一行来我司进行校企...

2024-07-09 浏览次数:0

MyBatis常用到的动态sql

2024-07-09 浏览次数:0

OSI七层模型每层的作用是什么?OSI七层模型各...

2024-07-09 浏览次数:0

围观!知了堂3月高校实训、讲座、校园招聘正式启动...

2024-07-09 浏览次数:0
最新资讯
常用排序算法有哪些?十大经典排... 常用排序算法有哪些?算法和数据结构在高级编程语言学习中非常重要,因为算法和数据结构是一个程序的灵魂。...