描述: 给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开 始),如果target不存在于数组中,返回-1。 样例 : 输入: [1, 2, 3, 3, 4, 5, 10], 3 输出: 2 样例解释: 3 第一次出现在第2 ...
分类:
其他好文 时间:
2019-05-31 21:19:57
阅读次数:
121
二分查找算法比较熟悉的是折半查找,但是折半查找中计算mid时,有加法和除法。下面介绍仅有加法方式的二分查找算法 核心思想利用斐波那契表达式来实现加法方式的折半查找 技巧点:1)将数组中数的个数(f(n)-1)分成 f(n-1) -1和 f(n-2)2):f(n) - 1 = (f(n-1)-1 )+ ...
分类:
编程语言 时间:
2019-05-30 22:15:01
阅读次数:
238
1、算法介绍 (1)序列必须是有序的 (2)取序列的中间元素与查找值比较,相等返回元素下标 (3)根据序列升序或降序,中间元素小于或大于查找值的具体情况,选择中间元素右边或左边的序列重复步骤(2)(3), 未找到返回-1。 2、代码实现 2.1、golang 2.2、python3 ...
分类:
编程语言 时间:
2019-05-30 10:30:20
阅读次数:
113
实验结论 实验结论 实验内容 1. 设N个整数有序(由小到大)存放在一维数组中。编写函数binarySearch(),实现使用二分查找算法在一维数组中 查找特定整数item。如果找到,返回item在数组元素中的下标;如果item不在数组中,则返回-1。 ①实现方式1:形参是数组,实参是数组名,使用数 ...
分类:
其他好文 时间:
2019-05-27 23:38:35
阅读次数:
235
实验结论: part 1:二分查找补足程序 (1)用数组元素直接访问方式实现 一定要注意到,形参是数组,而实参是数组名。所以调用的时候写的是a,而不是a[]或者a[N]。 (2)用指针变量访问。形参是指针变量,实参是数组名。 形参是指针变量,实参仍为数组名。item是需要寻找的值,*p表示,可是这里 ...
分类:
编程语言 时间:
2019-05-27 23:19:11
阅读次数:
142
Part 1:二分查找 设N个整数有序(由小到大)存放在一维数组中。编写函数binarySearch(),实现使用二分查找算法在一维数组中 查找特定整数item。如果找到,返回item在数组元素中的下标;如果item不在数组中,则返回-1。 实现方式1:形参是数组,实参是数组名,使用数组元素直接访问 ...
分类:
其他好文 时间:
2019-05-27 23:17:41
阅读次数:
136
实验结果 运行截图 运行截图 ex2_2.cpp 运行结果 总结 在字符串数组的比较和赋值应用函数 strcmp 和strcpy 实现而不能直接用运算符,数组和指针之间的转换很容易混淆导致,要多看书熟练掌握。 选择法和二分法思路都不太难懂但如果不参考算法流程图自己写起来还是有些困难,需要多练习改进 ...
分类:
其他好文 时间:
2019-05-27 16:35:17
阅读次数:
101
1.二分查找 ex1-1 ex-1-2 2, 选择法排序 ex2-2 总结和体会 二分法查找算法 数组和指针表示数组元素的差别 数组中的第一个元素a[1] 用指针表示 *(p+1) 相互之间的关系 *p=a;a[i]=*(p+i);p=&a[0]; 选择法排序 字符数组的赋值不能用a[]=b[];比 ...
分类:
其他好文 时间:
2019-05-26 17:47:43
阅读次数:
101
实验结论 1.二分查找 实现方式1:形参是数组,实参是数组名,使用数组元素直接访问方式实现 运行结果: 实现方式2:形参是指针变量,实参是数组名,使用指针变量间接访问方式实现 运行结果: 2. 选择法排序 使用选择法对字符串按字典序排序 运行结果: 实验总结与体会 1.二分查找算法 数组名作为参数: ...
分类:
其他好文 时间:
2019-05-26 00:23:35
阅读次数:
108
数组和指针 1. 设N个整数有序(由小到大)存放在一维数组中。编写函数binarySearch(),实现使用二分查找算法在一维数组中 查找特定整数item。如果找到,返回item在数组元素中的下标;如果item不在数组中,则返回-1。 实现方式1:形参是数组,实参是数组名,使用数组元素直接访问方式实 ...
分类:
其他好文 时间:
2019-05-25 12:56:37
阅读次数:
107