复杂度

一句话解释
PS:点击蓝色标题,可查看详解介绍!
插入排序
1.直接插入排序:
循环每个位置,与前一个的比较,若大则不动;若小,则移动到其前面,继续,直到比前面的一个大。
2.希尔排序:
插入排序的升级版本,是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。
把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,当增量减至1时,整个数据恰被分成一组,算法终止。
选择排序
1.直接选择排序:
在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换……第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。
2.堆排序:
将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了。
交换排序
1.冒泡排序:
每次比较两个相邻的元素,如果它们的顺序错误就把它们预期的顺序交换过来。
2.快速排序:
在数序列中找一个数作为基准数(一般为第一个数),经过比较调整,将所有小于基准数的数放在基准数左边,将所有大于基准数的数放在基准数放在右边。然后分别递归基准数左边和右边的序列。
归并排序:
算法将数组分为两半,对每部分递归的应用归并排序。在两部分都排好序后,对他们进行归并。
基数排序
1.计数排序:
用待排序的数作为计数数组的下标,统计每个数字的个数。然后依次输出即可得到有序序列。
2.桶排序:
如果需要对数据范围在0~n的整数进行排序,我们需要n+1个桶,来记录0~n之间每一个数字出现的次数,我们将桶按照0~n编号,然后将出现的数字放在与编号相等的桶里,统计每个桶内数字的个数,待全部的数字装好,输出桶内数字不为0的桶编号,桶内数字为几输出几次。
本文介绍了多种经典的排序算法,包括插入排序(直接插入排序、希尔排序)、选择排序(直接选择排序、堆排序)、交换排序(冒泡排序、快速排序)、归并排序及基数排序(计数排序、桶排序)。每种算法都有简洁明了的操作流程描述,帮助读者快速理解其工作原理。
5万+

被折叠的 条评论
为什么被折叠?



