(1)基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。(2)用java实现publi ...
分类:
编程语言 时间:
2019-05-22 15:25:39
阅读次数:
132
本文对常见的排序算法进行了总结。 常见排序算法如下: 它们都属于内部排序,也就是只考虑数据量较小仅需要使用内存的排序算法,他们之间关系如下: ???????????????????????????????内部排序???????????????????????????插入排序{直接插入排序希尔排序选择 ...
分类:
编程语言 时间:
2019-05-19 09:36:52
阅读次数:
105
shell(希尔)排序是插入排序的一种,是直接插入排序算法的一种更高效的改进版本, 其思想是使数组中任意间隔h的元素都是有序的,其目的是为了减少元素的移动距离. array_0 = [12, 23, 54, 32, 11, 76, 5, 73,2, 89, 76,554,65,234, 42]she ...
分类:
编程语言 时间:
2019-05-10 20:38:32
阅读次数:
218
基本概念 直接插入排序是一种最简单的排序方法,排序过程为:先将第一个元素看作是只有一个元素的有序子表,然后从第二个元素开始,将待排序元素依次插入到前面有序的子表中,直到全部排序完毕。在整个过程中,前面的元素是已经排序号的列表,后面的元素为待排序处理。 基本过程 将第一个元素看作是一个有序的列表,从第 ...
分类:
编程语言 时间:
2019-05-02 19:02:00
阅读次数:
172
冒泡排序 比较相邻的元素,如果第一个比第二个大,就交换他们。第一步所有相邻的排序做完后,最大的数字会在最右边,接着重复步骤。 假设参与比较的数组元素个数为 N,则第一轮排序有 N-1 次比较,第二轮有 N-2 次,如此类推,这种序列的求和公式为: (N-1)+(N-2)+...+1 = N*(N-1 ...
分类:
编程语言 时间:
2019-04-21 00:27:29
阅读次数:
164
八大排序,三大查找是《数据结构》当中非常基础的知识点,在这里为了复习顺带总结了一下常见的八种排序算法。常见的八大排序算法,他们之间关系如下: 他们的性能比较: 下面,利用Python分别将他们进行实现。 直接插入排序 算法思想: 直接插入排序的核心思想就是:将数组中的所有元素依次跟前面已经排好的元素 ...
分类:
编程语言 时间:
2019-04-18 15:01:46
阅读次数:
138
计算机程序从根本上看包括两方面的内容:数据结构,算法。因此从某种意义上说,程序=数据结构+算法。 今后将逐步的学习算法与数据结构。 一、排序算法 1、简单排序 (1)直接插入排序(升序) 顾名思义,这个排序算法和“插入”有关。其基本思想是每步将待排序的记录,按照其大小插入到前面已经排序的子序列中合适 ...
分类:
编程语言 时间:
2019-04-16 16:24:55
阅读次数:
169
【基本思想】 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。 【基本思想】 【算法复杂度】 时间复杂度(平均)时间复杂度 (最坏)时间复杂度(最好)空间复杂度稳定性 O(n^2) O(n^2) O(n) O(1) 稳定 时间复杂 ...
分类:
编程语言 时间:
2019-03-31 23:16:01
阅读次数:
195
常用的内部排序方法有:交换排序(冒泡排序、快速排序)、选择排序(简单选择排序、堆排序)、插入排序(直接插入排序、希尔排序)、归并排序、基数排序(一关键字、多关键字)。 一、冒泡排序: 1.基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。 ...
分类:
编程语言 时间:
2019-03-20 13:01:40
阅读次数:
263