/*
伪代码:
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;
}

对有序表的查找(快步搜索算法)相关推荐

  1. C++实现有序表折半查找

    1>算法思想: 折半查找(Binary Search)的查找过程是:先确定等查记录所在范围(区间),然后逐步缩小范围直到找到或找不到该记录为止. 2>算法 3>算法实现 #inclu ...

  2. 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 ...

  3. 对长度为200的有序表进行二分查找_程序员常用的查找算法(顺序、二分、插值、分块、斐波那契)...

    顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...

  4. 数据结构与算法(Python版)十六:有序表抽象数据类型及Python实现

    抽象数据类型:有序表OrderedList 有序表是一种数据项依照其某可比性质(如整数大小. 字母表先后) 来决定在列表中的位置 越"小"的数据项越靠近列表的头, 越靠" ...

  5. python数据结构: 有序表

    1. 有序表 ❖有序表是一种数据项依照其某可比性质(如整数大小.字母表先后)来决定在列表中的位置 ❖越"小"的数据项越靠近列表的头,越靠"前" 2.抽象数据类型 ...

  6. 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)

    目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...

  7. 数据结构(1)有序表查找

    有序表查找 /* 主函数 */public class OrderTableSearch {public static void main(String[] args) {int [] a= {0,1 ...

  8. Java有序表查找:折半查找、二分查找、差值查找和斐波那契查找

    Java有序表查找:折半查找.二分查找.差值查找和斐波那契查找     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51 ...

  9. c语言折半查找输出坐标,数据结构(C语言版)——有序表查找(折半查找)(代码版)...

    数据结构(C语言版)--有序表查找(折半查找)(代码版) 数据结构(C语言版)--有序表查找(折半查找)(代码版) #include #include #define ERROR 0 #define ...

最新文章

  1. 1滴血,2小时,验13种癌症,精度99%!日本东芝新技术引热议
  2. c语言大作业之镖行天下,天下识君--如何最快速度刷完天下识君
  3. 函数计算自动化运维实战 3 -- 事件触发自动创建快照
  4. 经典C语言程序100例之九零
  5. 如何找到SAP S4销售订单的字段tkomk是在哪里填充的
  6. 数列分块入门 9(LibreOj-6285)
  7. python中特殊变量-python list每三个分成一组python中星号变量的几种特殊用法
  8. Git 简介和命令行操作
  9. jquery砸金蛋 高仿阿里旅游砸金蛋
  10. 深度学习pytorch基础入门教程(1小时)-张量、操作、转换
  11. docker运行oracle11g
  12. pm2启动express项目
  13. springboot+elasticsearch 基本使用
  14. 取消苹果商店简短验证_苹果:其实我赚钱的是配件!
  15. 员工拿计件工资,一旦工资挣高了,老板就调低工价,这样的老板你遇到过吗,怎么应对?
  16. 热敏电阻的选型参数含义解读
  17. 发那科机器人回原位置先上升_机器人小知识 | 发那科机器人位置信息修改介绍...
  18. 首批Win 8 Xbox游戏名单公开
  19. 群晖DS3617 DS918引导文件+安装文件下载
  20. 2022SIE中国民办教育展将亮相上海,赋能行业高质量发展!

热门文章

  1. 计算机win7教案,win7操作系统教案_相关文章专题_写写帮文库
  2. “碟中碟”虚拟光驱软件开发者——万春读《寒江》
  3. arm -linux开发产品,arm是什么意思_arm的翻译_音标_读音_用法_例句_爱词霸在线词典...
  4. 华硕 ZenFone 国产新机盘点
  5. 几何矩的物理意义,由Camshift算法引起
  6. c语言 程序段 数据段,C语言程序的段
  7. 深入浅出计算机组成原理04-穿越功耗墙,我们该从哪些方面提升“性能”?
  8. 使用EasyExcel的坑
  9. windows无法连接到打印机_同事的电脑无法访问,共享打印机连接不上,问题都在这...
  10. 我从《阿里云:人工智能应用实践与趋势》白皮书学到了什么?