##查找 · 今天老师带着我们学习了"查找"这一章,查找分为基于线性表的查找法和基于树的查找法,但还只是讲了基于线性表的查找法,那么基于线性表的查找法还分为顺序查找法、折半查找法、分块查找法。 · 首先是顺序查找法,它的特点是用所给关键字与线性表中各元素的关键字逐个比较,直到成功或者失败,存储结构通 ...
分类:
其他好文 时间:
2020-06-01 19:17:45
阅读次数:
92
顺序查找 基本流程:从线性表的一端开始,逐一查找满足条件的线性表元素,有则返回元素位置信息,无则返回错误信息。 ...
分类:
其他好文 时间:
2020-05-25 17:27:10
阅读次数:
51
在看Collections工具类代码时,发现翻转数组的逻辑,感觉很有趣。思想:折半交换 public static void main(String[] args) { // TODO Auto-generated method stub int[] n = new int[] {1,2,3,4,5 ...
分类:
编程语言 时间:
2020-05-12 15:25:49
阅读次数:
63
算法简介 二分查找 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将 ...
分类:
编程语言 时间:
2020-05-11 23:43:48
阅读次数:
96
静态查找 数据集合稳定,不需要添加,删除元素的查找 对于静态查找:可以用线性表结构组织数据,这样便可使用顺序查找算法,如果再对关键字进行排序,则可使用折半查找法或斐波那契查找法等来提高效率 动态查找 数据集合在查找的过程中需要同时添加或删除元素的查找 对于动态查找:可考虑使用二叉排序树的查找技术,另 ...
分类:
其他好文 时间:
2020-05-11 15:11:36
阅读次数:
82
在查找数据的时候除了暴力查找外,还可可以使用二分法查找,二分法查找又叫折半查找。二分法在查找的时候效率是比较高的,但是它有 局限性,就是仅适用于顺序表,不管是升序还是降序都适用。原理就是取顺序表的中间那个元素mid,然后用中间的元素mid和待查找元素x进 行比较大小,以此改变下次的查找区间,使得下次 ...
分类:
其他好文 时间:
2020-04-29 21:53:53
阅读次数:
56
插入排序 1.直接插入排序 默认 L(1) 有序,将 L(2) ~ L(n)依次插入到前面已经排好序的子序列中。 空间效率:O(1) ,就地排序 时间效率:比较和移动。最好情况下,有序,只需要比较不需要移动,只要 O(n)。 平均是 O (n2) 稳定性:稳定。 适用性:均可。 2.折半插入排序 主 ...
分类:
编程语言 时间:
2020-04-26 18:37:56
阅读次数:
60
题目链接:http://poj.org/problem?id=3977 前言 如无法区分折半枚举,二分, "请点击这里" 分析 这题我感觉出了是用枚举,毕竟数据范围很小,但是,集合中每个元素都有可能被选或者不被选,根据计数原理应该会有$2^{35} 1$种情况,需要刨除空集,枚举显然是会T掉,那怎么 ...
分类:
其他好文 时间:
2020-04-26 13:48:26
阅读次数:
78
插入排序 直接插入排序,折半插入排序,2-路插入排序,希尔排序 快速排序 冒泡排序,快速排序(冒泡排序改进), 选择排序 简单选择排序,树形选择排序,堆排序 归并排序 基数排序 ...
分类:
编程语言 时间:
2020-04-20 13:41:41
阅读次数:
63
思路:折半查找,关键在于停止循环的条件。 1 class Solution(object): 2 def searchInsert(self, nums, target): 3 """ 4 :type nums: List[int] 5 :type target: int 6 :rtype: int ...
分类:
其他好文 时间:
2020-04-17 23:59:52
阅读次数:
406