首先,对数组元素进行排序方法总结为以下两类:
一、简单排序算法(时间复杂度O(n*n))
1.插入排序
2.选择排序
3.交换排序,即冒泡排序
二、先进排序算法(时间复杂度O(n*logn))
1.快速排序
2.归并排序
3.堆排序
接下来,分别对其进行讨论:
1.插入排序
算法思想:每一步将一个待排序元素按其关键字值的大小插入到已排序序列的适当位置上,直到待排序元素插入完为止。
算法实现:
测试结果:
2.选择排序
算法思想:每次从待排序序列中选择一个关键字最小的元素(当需要按关键字升序排列时),顺序排在已排序序列的最后,直至全部排完。
算法实现:
测试结果:
3.交换排序(冒泡排序)
算法思想:两两比较待排序序列中的元素,并交换不满足顺序要求的各对元素,直至全部满足顺序要求为止。
算法实现:
测试结果:
4.快速排序
算法思想:
1:分解,以a[p]为基准元素将a[p:r]划分成3段a[p:q-1],a[q],a[q+1:r],使a[p:q-1]中任何一个元素小于等于a[q],而a[q+1:r]中任何一个元素大于等于a[q]。
2:递归,通过递归调用快速排序算法分别对a[p:q-1]和a[q+1:r]进行排序
算法实现:
测试结果: