排序算法
什么是排序?
在计算机中,利用一定的程序,将输入的随机数组进行一定的运算处理,最后输出一个按照一定规则进行排列的数组,为排序。
经典的排序算法
排序算法 | 解释 | 复杂度 |
---|---|---|
冒泡排序 | 重复从输入数组右边进行比较两个相邻数字,根据结果决定是否交换两者位置 | n^2/2 |
选择排序 | 从待排序的输入数组中找到最小的,然后将其与序列最左边的数字进行交换位置,重复该操作 | n^2/2 |
插入排序 | 从输入数组的右侧的未排序区域内取出一个数据,然后插入到一排区域的合适位置上,直至所有区域都是已排列数据 | n^2/2 |
堆排序 | 将输入的数据按照堆的结构进行构建,然后根据顺序冲对中一个一个的取出 | O(logn) |
归并排序 | 将输入数组进行分为两个长度相同的子序列,不断进行分,直至不能分下去,然后进行归并操作,归并中,按照顺序进行比较排列,直至为一个整体 | O(nlogn) |
快速排列 | 在输入数组中选择一个基准值,然后将其余数值分为比基准值小和大的两个不同类型数值,分别分在两侧,然后对其他数值进行同样操作 | O(nlogn) |
更加复杂的排序方式还有许多,本文章主要列出主要的几种排列方式,供大家参考~