希尔排序,是插入排序的改进版本,又叫缩小增量排序。 1、首先取一个整数gap默认是2,将元素分为gap个子序列,所有间隔为gap的元素放在一个子序列中 2、然后在每个子序列终实现直接插入排序,然后缩小间隔gap,直到gap缩小到1 3、最后一步执行插入排序,直到数据完成排序。 ...
分类:
编程语言 时间:
2019-09-16 09:52:51
阅读次数:
90
排序 快速 https://segmentfault.com/a/1190000009426421选择 https://segmentfault.com/a/1190000009366805希尔 https://segmentfault.com/a/1190000009461832冒泡堆栈,队列,链 ...
分类:
编程语言 时间:
2019-09-04 23:09:37
阅读次数:
142
排序 这一类题还比较多,所以单独拿出来总结。 1012 The Best Rank (25 分) 这一类题还比较多,所以单独拿出来总结。 1012 The Best Rank (25 分) 这一类题还比较多,所以单独拿出来总结。 1012 The Best Rank (25 分) To evalua ...
分类:
编程语言 时间:
2019-09-02 19:14:18
阅读次数:
108
递归 深浅拷贝 排序算法 排序算法 函数类别 闭包 装饰器 生成器 迭代器 单例模式 ...
分类:
编程语言 时间:
2019-08-28 10:37:54
阅读次数:
70
相信凡是编程入门的都接触过冒泡排序算法,排序算法在编程中经常用到。 1. code 2. 算法分析 (1)时间复杂度 ? 若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数C和记录移动次数M均达到最小值: 所以,冒泡排序最好的时间复杂度为 O(n)。 若初始文件是反序的,需要进行n ...
分类:
编程语言 时间:
2019-08-27 00:48:54
阅读次数:
86
十大经典算法排序总结对比 一张图概括: 主流排序算法概览 主流排序算法概览 n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外内存稳定性:排序后2个相等键值的顺序和排序之前它们的顺序相同 冒泡排序(Bubble Sort) 当输入的数据已经是 ...
分类:
编程语言 时间:
2019-08-21 16:26:01
阅读次数:
90
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 平方阶 ...
分类:
编程语言 时间:
2019-08-21 11:20:44
阅读次数:
80
冒泡排序 冒泡排序(bubble sort),以升序来说,最后的排列一定是从小到大的。冒泡就是从最低端(数组末尾)开始,相邻的两个元素交换,把小的值放在前面,第一次冒泡就把最小的元素放到最顶端(数组首位)。冒泡排序是交换排序 冒泡的逻辑 1.双层遍历 2.外循环i,比如i=0,就把最小值放到arra ...
分类:
编程语言 时间:
2019-08-19 20:57:23
阅读次数:
84
冒泡排序的核心就是比较相邻的两个项,如果第一项比第二项大,则交换它们,以此类推元素向上移动到正确的位置,就像气泡冒出的感觉。 举一个简单的例子,有1,5,8,3,2这五个数,按照从小到大的顺序进行排列。代码如下: 若要实现从大到小的排列,只需将 if (arr[ j ] > arr[ j + 1 ] ...
分类:
编程语言 时间:
2019-08-18 15:57:06
阅读次数:
73
冒泡排序 1.将原始列表中的最大值找出且放置在列表最右侧(将元素两两比较,将数值大的数逐步向后移动) 2.重复执行步骤1 选择排序 选择排序 1.将列表中的最大值一次找出,放置在列表最右侧 正式代码 插入排序 将乱序列表分成两部分,一部分是有序部分,一部分是乱序部分,将乱序部分的每一个元素插入到有序 ...
分类:
编程语言 时间:
2019-08-17 01:00:21
阅读次数:
86