排序算法
z海清
只要思想不滑坡,方法总比困难多
展开
-
希尔排序
希尔排序希尔排序作为插入排序的一种。也称缩小增量排序,是直接插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰好分成一组,算法便终止。 过程希尔排序是基于插入排序的以下两点性质而提出改进方法的;1. 插入排序在对几乎已经排序好的数据操作时,效率高,即可达到线性排序的效率。2. 但插入排序一般是比较低效的,因为插入排序每次只能将数据移动一位。基本原创 2020-08-20 17:18:24 · 538 阅读 · 0 评论 -
冒泡排序
在这里插入图片描述稳定性由于在比较过程中,当两个相同大小的元素相邻,只比较大小,所以相等的时候是不会交换位置的。当两个相等的元素相隔比较远时,也只会把它们交换到相邻位置,它们的相对位置在交换前后是不会发生任何变化的,所以冒泡算法是稳定的。时间复杂度最优情况下时间复杂度为O(n),平均为O(n^2)public static void bubbleSort(int[] num){ for(int i =0; i<num.length-1;i++){ for(int j=0; j<原创 2020-08-19 16:31:17 · 271 阅读 · 0 评论 -
插入排序
插入排序概念过程代码算法复杂度:概念有一个已经有序的数据序列,要求插入一个数据后序列仍然有序,这时可考虑插入排序算法。它适用于少量数据的排序。时间复杂度为O(n^2),它是稳定的排序算法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已经排序的第一部分中。插入排序的基本思想是:每步将一个待排序的记录,按其大小插入前面已经排序的文件中适当位置上,直到全部插入完成为止。过程原创 2020-08-19 14:58:43 · 195 阅读 · 0 评论