【算法】十大排序算法

冒泡排序

算法思想:基于比较的思想,从第一个元素开始,依次比较相邻两个元素大小,较大者放在后面,经过一轮后,最大的元素位于最后(最大元素不断冒泡到最后的位置),重复n轮。

选择排序

算法思想:基于比较的思想,维护一个记录最大值的变量,遍历所有元素找到最大值所在位置,将其与最后的位置交换,重复n轮。

堆排序

算法思想:基于选择的思想,利用堆数据结构排序不断选择出最大值,初始化堆(通过建堆下潜操作),将堆顶(数组第一位)最大值与最后位置交换,再对堆顶元素进行下潜操作(堆大小减1)。

插入排序

算法思想:基于比较的思想,不断将元素插入到已经排好序的数组,插入排序对于近乎有序的数据处理速度比较快

希尔排序

算法思想:基于插入的思想,可看作插入排序加强版,利用插入排序对近乎有序的数据处理速度比较快的特点,将待排序数组分成多个小组(每隔gap个元素一组),在小组内进行插入排序,此时数组有一定的顺序,不断缩小gap直至1重复分组再组内排序。

归并排序

算法思想:基于分治的思想, - 每次从中间切一刀,处理的数据少一半。 - 当数据仅剩一个时可以认为有序。 - 两个有序的结果,可以进行合并排序。

快速排序

算法思想:基于分治的思想,选取一个基准,将小于基准的元素全部放在左边,大于基准的元素全部放在右边,再递归操作左边数组和右边数组。

计数排序

求出最大值M和最小值m,创建一个长度为M-m的数组,第一个位置存最小值,依次类推。将元素大小与数组索引绑定,最后依次取出数组中的元素达到排序效果。

桶排序

将所有元素放在准备好的桶内,前一个桶内的最大值小于后一个桶内的最小值,再对桶内元素排序。

基数排序

对个位元素进行比较,依次放到对应桶里,再把桶里的元素依次取出放在数组里,相当于完成个位排序,再对数组中元素十位进行重复操,直到最高位。

posted @ 2024-07-03 18:57  hudad  阅读(31)  评论(0编辑  收藏  举报