
数据结构
Java烂笔头any
好记性不如烂笔头!
展开
-
数据结构 | 排序算法总结——(三)希尔排序排序(附Java实现代码)
1.2.3希尔排序希尔排序又叫缩小增量排序基本思想:先取一个小于n的整数作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。具体算法步骤:选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1; 按增量序列个数k,对序列进行k 趟排序原创 2020-09-03 17:27:23 · 520 阅读 · 0 评论 -
数据结构 | 排序算法总结——(二)折半插入排序(附Java实现代码)
1.2.2折半插入排序原理:有一组数据待排序,排序区间为Array[0]~Array[n-1]。将数据分为有序数据和无序数据,第一次排序时默认Array[0]为有序数据,Array[1]~Array[n-1]为无序数据。有序数据分区的第一个元素位置为low,最后一个元素的位置为high。遍历无序区间的所有元素,每次取无序区间的第一个元素Array[i],因为0~i-1是有序排列的,所以用中点m将其平分为两部分,然后将待排序数据同中间位置为m的数据进行比较,若待排序数据较大,则low~m-1分区的数据原创 2020-09-03 16:35:15 · 1145 阅读 · 0 评论 -
数据结构 | 排序算法总结——(一)直接插入排序(附Java实现代码)
1.1排序基本概念排序:重新排列表中的元素,使表中的元素满足按关键字递增或递减的过程。算法的稳定性:如果待排序表中有两个元素Ri、Rj,其对应的关键字keyi=keyj,且在排序前Ri在Rj前面,如果使用某一排序算法排序后,Ri仍在Rj的前面,则称这个排序算法是稳定的。分类:在排序过程中,根据数据元素是否完全在内存中,可将排序算法分为两类。 内部排序:在排序期间元素全部存放在内存中的排序。 外部排序:在排序期间元素无法全部同时存放在内存中,必须在排序过程中...原创 2020-09-03 16:12:29 · 633 阅读 · 0 评论