对有序表的查找(快步搜索算法)
/*
伪代码:
Input: 表L, 表的长度n, 步长s, 元素x
Output: x所在的位置
Algorithm QS(L, M, N, S, X) //在长度为N的有序表中以S为步长,查找X所在的位置
begin
m:=s + m;
while m<n do
case
x = L(m); return m;
x < L(m); QS(L, m-k, m-1, s/2, x);
otherwise m:= m+s;
end of case
end of while
if m-s < n
then QS(L, m-s, n, s/2, x);
end
*/
//程序实现:
#include <stdio.h>
#define N 20
#define S 6
#define X 41
int QS(int a[], int m, int n, int s, int x)
{
int k =0, j = 0;
m = m + s;
while (m < n)
{
if (s == 0)
return -1;
if (x == a[m])
{
return m;
}
else if (x < a[m])
{
k = m - s;
s = s / 2;
j = QS(a, k, m-1, s, x);
}
else
{
m = m + s;
}
}
if ( m == n)
{
if (x == a[m])
return m;
else
return -1;
}
while ((m > n) && ((m - s) < n))
{
k = m - s;
s = s / 2;
j = QS(a, k, n, s, x);
}
return j;
}
int main(void)
{
int a[N] = {4, 9, 12, 14, 27, 30, 32, 36, 41, 48, 55, 57, 60, 68, 73, 75, 85, 88, 96, 98};
int j = 0;
j = QS(a, 0, N-1, S, X);
if (j < 0)
printf("%d is not exist\n", X);
else
printf("%d is the number %d\n", X, j + 1);
return 0;
}
对有序表的查找(快步搜索算法)相关推荐
- C++实现有序表折半查找
1>算法思想: 折半查找(Binary Search)的查找过程是:先确定等查记录所在范围(区间),然后逐步缩小范围直到找到或找不到该记录为止. 2>算法 3>算法实现 #inclu ...
- Python数据结构——对有序表二分查找
list= [1, 5, 6, 9, 10, 51, 62, 65, 70] 查找5时: [1, 5, 6, 9, 10, 51, 62, 65, 70] low=0 high=9 ...
- 对长度为200的有序表进行二分查找_程序员常用的查找算法(顺序、二分、插值、分块、斐波那契)...
顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...
- 数据结构与算法(Python版)十六:有序表抽象数据类型及Python实现
抽象数据类型:有序表OrderedList 有序表是一种数据项依照其某可比性质(如整数大小. 字母表先后) 来决定在列表中的位置 越"小"的数据项越靠近列表的头, 越靠" ...
- python数据结构: 有序表
1. 有序表 ❖有序表是一种数据项依照其某可比性质(如整数大小.字母表先后)来决定在列表中的位置 ❖越"小"的数据项越靠近列表的头,越靠"前" 2.抽象数据类型 ...
- 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)
目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...
- 数据结构(1)有序表查找
有序表查找 /* 主函数 */public class OrderTableSearch {public static void main(String[] args) {int [] a= {0,1 ...
- Java有序表查找:折半查找、二分查找、差值查找和斐波那契查找
Java有序表查找:折半查找.二分查找.差值查找和斐波那契查找 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51 ...
- c语言折半查找输出坐标,数据结构(C语言版)——有序表查找(折半查找)(代码版)...
数据结构(C语言版)--有序表查找(折半查找)(代码版) 数据结构(C语言版)--有序表查找(折半查找)(代码版) #include #include #define ERROR 0 #define ...
最新文章
- 1滴血,2小时,验13种癌症,精度99%!日本东芝新技术引热议
- c语言大作业之镖行天下,天下识君--如何最快速度刷完天下识君
- 函数计算自动化运维实战 3 -- 事件触发自动创建快照
- 经典C语言程序100例之九零
- 如何找到SAP S4销售订单的字段tkomk是在哪里填充的
- 数列分块入门 9(LibreOj-6285)
- python中特殊变量-python list每三个分成一组python中星号变量的几种特殊用法
- Git 简介和命令行操作
- jquery砸金蛋 高仿阿里旅游砸金蛋
- 深度学习pytorch基础入门教程(1小时)-张量、操作、转换
- docker运行oracle11g
- pm2启动express项目
- springboot+elasticsearch 基本使用
- 取消苹果商店简短验证_苹果:其实我赚钱的是配件!
- 员工拿计件工资,一旦工资挣高了,老板就调低工价,这样的老板你遇到过吗,怎么应对?
- 热敏电阻的选型参数含义解读
- 发那科机器人回原位置先上升_机器人小知识 | 发那科机器人位置信息修改介绍...
- 首批Win 8 Xbox游戏名单公开
- 群晖DS3617 DS918引导文件+安装文件下载
- 2022SIE中国民办教育展将亮相上海,赋能行业高质量发展!
热门文章
- 计算机win7教案,win7操作系统教案_相关文章专题_写写帮文库
- “碟中碟”虚拟光驱软件开发者——万春读《寒江》
- arm -linux开发产品,arm是什么意思_arm的翻译_音标_读音_用法_例句_爱词霸在线词典...
- 华硕 ZenFone 国产新机盘点
- 几何矩的物理意义,由Camshift算法引起
- c语言 程序段 数据段,C语言程序的段
- 深入浅出计算机组成原理04-穿越功耗墙,我们该从哪些方面提升“性能”?
- 使用EasyExcel的坑
- windows无法连接到打印机_同事的电脑无法访问,共享打印机连接不上,问题都在这...
- 我从《阿里云:人工智能应用实践与趋势》白皮书学到了什么?