归并类的排序算法 归并:将两个或两个以上的有序表组合成一个新的有序表。 内部排序中,通常采用的是 2-路归并排序。即:将两个位置相邻的记录有序子序列归并为一个记录有序的序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用 ...
分类:
编程语言 时间:
2017-09-10 15:05:48
阅读次数:
110
直接插入排序(straight insertion sort)的作法是: 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进 ...
分类:
编程语言 时间:
2017-09-07 13:23:07
阅读次数:
239
查找 一、查找的基本概念 1、动态查找表在查找过程中插入元素或者从查找表中删除元素, 2、静态查找表只是查找特定元素或者检索特定元素的属性。 3、通俗的说,动态查找表可以对查找表结构进行修改,而静态查找表只是查询。 4、顺序存储和链式存储方式都支持线性查找。 5、二分查找时,数据必须以顺序方式查找, ...
分类:
其他好文 时间:
2017-09-04 19:43:54
阅读次数:
244
list是一种有序的集合,可以随时添加和删除其中的元素。 知识点: . 创: 增: list是一个可变的有序表,所以,可以往list中追加元素到末尾: 也可以把元素插入到指定的位置,比如索引号为1的位置: 删: 要删除list末尾的元素,用pop()方法: 要删除指定位置的元素,用pop(i)方法, ...
分类:
编程语言 时间:
2017-09-01 21:22:21
阅读次数:
130
1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数 ...
分类:
编程语言 时间:
2017-08-30 20:51:11
阅读次数:
218
第九章 排序 假设ki=kj(1≤i≤n,1≤j≤n,i≠j),且在排序前的序列中ri领先于rj(即i<j)。如果排序后ri仍领先于rj,则称所用的排序方法是稳定的;反之,若可能使得排序后的序列中rj领先ri,则称所用的排序方法是不稳定的。 内排序是在排序整个过程中,待排序的所有记录全部被放置在内存 ...
分类:
其他好文 时间:
2017-08-28 19:56:39
阅读次数:
95
基本思想 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。 代码实现 ...
分类:
编程语言 时间:
2017-08-25 15:54:38
阅读次数:
168
基本思想 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,所以插入 ...
分类:
编程语言 时间:
2017-08-25 12:15:45
阅读次数:
215
直接插入排序基本思想: 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中; 依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。 ...
分类:
编程语言 时间:
2017-08-24 01:10:53
阅读次数:
151
一.适用情形 二分查找,又称折半查找,优点是比较次数少,查找速度快,平均性能好; 其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 二.Java语言对二分查找的实现 1.循环方式实现 2.递归方式实现 3.JDK中的实现(java.util.Ar ...
分类:
其他好文 时间:
2017-08-23 00:39:13
阅读次数:
98