数据结构中各种排序算法
(1)冒泡排序
基本思想:从上至下进行排序,两两比较,大的值向下,小的值向上;若x[i]>x[i+1],则交换顺序
优点:较为稳定的内部排序
缺点:不适用于数据量较大的排序,效率较低
时间复杂度:O(n^2)
举例:
(2)直接选择排序
基本思想:在要排序的数组中,选择最大(最小)的数与第一个数进行交换,再从剩下的数中,选择最大(最小)的数与第二个数进行交换,直到第n个数和第n-1个数比较为止
优点:是一种较为稳定的内部排序
缺点:效率较低
时间复杂度:O(n^2)
(3)插入排序
基本思想:[i,2,3....i][i+1,i+2,.....n]
有序区,无序区
前i个数有序,从i+1个数开始选择插入前i个数中,使得前面的数小于等于它,后面的数大于等于它;直至所以的数插 入完毕
优点:是一种较为稳定的内部排序
缺点:效率较低,适用随机数较少的场景
时间复杂度:O(n^2)
(4)希尔排序
基本思想:
(5)快速排序
每经过一趟快排,轴点元素都必然就位,也就是说,一趟下来至少有1个元素在其最终位置,2趟就有两个位置元素就位。
(6)