内部排序 -插入排序 -直接插入排序 -折半插入排序 -希尔排序 -交换排序 -冒泡排序 -快速排序 -选择排序 -简单选择排序 -堆排序 -归并排序 -基数排序 外部排序 -多路归并排序 1.直接插入排序 算法思路:每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中,指导全部记录插入 ...
分类:
编程语言 时间:
2020-06-24 16:30:37
阅读次数:
52
08:00 真正有学问的人,知道在需要时,应该从哪里获取知识,也知道如何把知识组织起来,形成明确的行动计划。 ——拿破仑·希尔 刚跟孩子视频完,就想好好跟她聊聊天,希望尽量多给她感受点父爱。一年多的日记里,提到自己孩子的次数极少,可想而知,我这个做父亲的“本事”有多大。不是不想写,似乎是我在逃避些什 ...
分类:
其他好文 时间:
2020-06-22 22:56:30
阅读次数:
67
本文分析冒泡、快速、选择、插入、希尔、归并和堆排序,为了对以下各个算法进行方便的测试,测试主方法体如下(Java 实现):public class Sort { public static void main(String[] args) { int[] input = {5, 4, 7, 1, 6... ...
分类:
编程语言 时间:
2020-06-21 15:46:10
阅读次数:
92
来源:https://www.bilibili.com/video/BV1B4411H76f?p=60 一、思路 希尔排序:本质还是一种插入排序,分组和之前的简单插入排序不一样,这里给出一个增量,按照这个增量进行分组,增量是逐渐减小的,减小为1时进行最后一次排序。所以希尔排序也可以叫缩小增量排序。 ...
分类:
编程语言 时间:
2020-06-19 14:27:09
阅读次数:
50
概述 本文中主要讲解一些常见排序算法,分别是冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序,计数排序 常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序 ...
分类:
编程语言 时间:
2020-06-17 13:03:11
阅读次数:
69
希尔算法: 先对列表分组,再对每组元素分别做插入排序。 元素分组是通过设置步长(gap,即组的数量)实现的。每一组元素内,相邻元素之间的距离(步长)固定。 插入排序与冒泡排序时间复杂度相同(O(n^2)),但执行速度快,是因为需要执行的代码行数少(寻找到插入位置前,插入排序每次判断仅移动一个元素,冒 ...
分类:
编程语言 时间:
2020-06-16 15:32:04
阅读次数:
59
在程序中出加入计数器来计算两者在执行过程中需要的插入次数 通过比较时间复杂度来比较效率 int shell(int a[],int n,int gap) { int count=0; int key=a[n]; while(n>=gap&&a[n-gap]>key) { a[n]=a[n-gap]; ...
分类:
编程语言 时间:
2020-06-16 00:57:10
阅读次数:
56
题目:各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。试通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。基本要求:(1) 从以下常用的内部排序算法至少选取5种进行比较:直接插入排序;折半折入排序;希尔排序;起泡排序;快速排序;简单选择排序;堆排 ...
分类:
编程语言 时间:
2020-06-15 22:34:29
阅读次数:
61
计算看作是一个独立的范式,或一种哲学。没有改变的是:这仍是对符号的操作 ...
分类:
其他好文 时间:
2020-06-15 13:51:40
阅读次数:
70
希尔排序和插入排序很类似; 你可以看一下我上一个博客写的插入排序,这两个很类似,我的这个希尔排序也是根据插入排序改编而成 如果你看过希尔排序的概念以后仍然不是很懂是如何实现的,很建议你看一下哔哩哔哩里一个关于希尔排序改编的舞蹈 你反复看几遍绝对会在脑海里形成很强烈的印象,因为实在是太魔性了 苏格兰改 ...
分类:
编程语言 时间:
2020-06-13 23:21:55
阅读次数:
73