二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两... ...
分类:
其他好文 时间:
2018-07-14 14:49:45
阅读次数:
159
一、直接插入排序的定义 直接插入排序就是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。 二、直接插入排序的实现 三、直接插入排序的 ...
分类:
编程语言 时间:
2018-07-12 13:15:46
阅读次数:
109
(1)查找: 查找是在一个项目集合中找到一个特定项目的算法过程。查找通常的答案是真的或假的,因为该项目是否存在。 查找的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找 (2)二分查找: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困 ...
分类:
其他好文 时间:
2018-07-05 12:08:28
阅读次数:
158
简介 折半查找(Binary Search),又称为二分查找。前提是线性表中的记录必须是 关键码有序 ,线性表必须采用 顺序存储 。 基本思想 在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间 ...
分类:
编程语言 时间:
2018-06-23 01:25:31
阅读次数:
188
跳表(SkipList)是一种随机化的数据结构,目前在redis和leveldb中都有用到它,它的效率和红黑树以及 AVL 树不相上下,但跳表的原理相当简单,只要你能熟练操作链表, 就能轻松实现一个 SkipList。 考虑一个有序表: 从该有序表中搜索元素 ,需要比较的次数 ...
分类:
其他好文 时间:
2018-06-06 23:53:22
阅读次数:
212
Java排序之归并排序 1. 简介 归并排序的算法是将多个有序数据表合并成一个有序数据表。如果参与合并的只有两个有序表,则成为二路合并。对于一个原始的待排序数列,往往可以通过分割的方法来归结为多路合并排序。 2. 归并排序思路 1. 将长度为n的待排序数组看做是由n个有序长度为1的数组组成 2. 将 ...
分类:
编程语言 时间:
2018-06-06 15:43:42
阅读次数:
233
归并排序( Merge sort) 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。 1 ...
分类:
编程语言 时间:
2018-06-01 22:20:18
阅读次数:
237
什么是合并排序:合并排序就是将两个或多个有序表合并成一个有序表,将两个有序表合并成一个有序表称为二路合并算法描述 :二路合并排序的基本思想是:对于两个有序表合并,初始时, 把含有n个结点的待排序序列看作有n个长度为1的有序子表所组成,将它们依次两两合并,得到长度为2的若干有序子表,再对这些子表进行两两合并,一直重复到长度为n,排序完成。合并排序过程:初始序列:?二路合并排序需要较大的辅助
分类:
编程语言 时间:
2018-05-11 23:38:28
阅读次数:
279
一、PTA实验作业(5分) 本周要求挑3道题目写设计思路、调试过程。设计思路用伪代码描述。题目选做要求: 顺序表选择一题(6 2,6 3,7 1选一题),代码必须用顺序结构抽象数据类型封装 单链表选择一题(6 1不能选) 有序表选择一题 原则上题目选择越难,代码量越大分值越高。 注意:本次及以后的作 ...
分类:
其他好文 时间:
2018-03-25 22:16:31
阅读次数:
197
一、插入排序 1、思想:原理类似抓扑克牌,在有序表中进行插入和查找,插入合适的位置时,之后的元素需要往后移动 2、时间复杂度: 最好:O(N),正序情况,只有比较时间,无移动时间 最坏:O(N2),逆序情况 平均:O(N2) 3、辅助空间:O(1) 4、稳定性:稳定 5、适用场合:适用于初始序列基本 ...
分类:
编程语言 时间:
2018-03-25 18:10:39
阅读次数:
209