哪里医院做无痛人流便宜 咨询网站在线,北京机建网站,仿做网站的网站,江门发布最新通告排序的概念
排序#xff1a;所谓排序#xff0c;就是使一串记录#xff0c;按照其中的某个或某些关键字的大小#xff0c;递增或递减的排列起来的操作。
稳定性#xff1a;假定在待排序的记录序列中#xff0c;存在多个具有相同的关键字的记录#xff0c;若经过排序所谓排序就是使一串记录按照其中的某个或某些关键字的大小递增或递减的排列起来的操作。
稳定性假定在待排序的记录序列中存在多个具有相同的关键字的记录若经过排序这些记录的相对次 序保持不变即在原序列中r[i]r[j]且r[i]在r[j]之前而在排序后的序列中r[i]仍在r[j]之前则称这种排 序算法是稳定的否则称为不稳定的。两个数相等时第一个数排序前在另外一个数之前拍完序之后还在另外一个数之前。
内部排序数据元素全部放在内存中的排序。
外部排序数据元素太多不能同时放在内存中根据排序过程的要求不能在内外存之间移动数据的排序。
常见的几大类排序 基数排序数据约束比较明显这七种排序比较通用
插入类排序
直接插入排序是一种简单的插入排序法其基本思想是把待排序的记录按其关键码值的大小逐个插入到一 个已经排好序的有序序列中直到所有的记录插入完为止得到一个新的有序序列
每次遍历到一个数找到前面小于等于它时候的位置 因为前面已经排好的全部时有序数列最大的数已经时有序数列中最后的那个数如果正好和前一个数相等或者大于前一个数则直接end1回到待排序数的下标等于keyi跳到下一个数继续判断如果小于的话往后移动则从end下标开始遍历整个有序数列找到key某个数的时候直接让end1key原来的end1位置的数已经移动到end2位置所以直接让直接让end1key完成插入如果end-1表示有序数列中最小的数都比key小则end1下标回到0数组第一个元素的位置就是key希尔排序为了解决直接插入排序的一些缺点希尔排序通过分组的方法让数据在每次进行直接插入排序的时候都是接近有序的。对直接插入排序进行更改。
以前直接插入时end1其实就是希尔排序中分组间隔为一时候的情况
现在有分组间隔所以每回在组内搬运元素每回end分组间隔gap就行每个小组排完序后数组接近有序分组间隔减一再排序最后一次插入排序整个数组接近有序
最后一次插入排序整个数组接近有序直接插入最快