冒泡排序:
代码如下:
原理:就像名字一样,每次都会冒出最大的一个数来,将该数与下一个数对比,然后进行交换位置。
结果
选择排序:
代码如下:
原理:每次选择一个相应元素将其放到指定位置,假设p为最小值位置,j与i后面的位置进行比较,发现最小的则记录最小的位置。
也可以是如下代码:
原理:此方法比较简单,假设第一个元素为最大值,以后每次循环假设当前下标元素最大,将当前元素与下一元素比较即可。
结果:
插入排序:
代码如下:
原理:每次讲一个带排序的元素,按照关键字插入到前面数据的适当位置。
该图片来源网络
结果:
快速排序:
代码:
原理:去第一个元素作为基础参考元素,将比他大的放到右边,比他小的放到左边,然后将左右两边的数组进行递归,最后按照左,参考元素,右合并数据即可。
代码:
结论:四种排序方法时间复杂度
直接插入排序:O(n^2),是一种稳定的排序方法。
冒泡排序:最好情况是O(n),最坏是O(n^2)
快速排序:最好情况是O(n),最坏是O(n^2)
选择排序:O(n^2),跟初始状态无关