图8所示的流程图是一种查找算法,用该算法在数组d{15,28,35,37,42,56,78,82,92,98}中查找92,依次被查到的元素值是()。A.42,82,92B.56,82,92C.42,78,82,92D.56,78,82,92

图8所示的流程图是一种查找算法,用该算法在数组d{15,28,35,37,42,56,78,82,92,98}中查找92,依次被查到的元素值是()。



A.42,82,92

B.56,82,92

C.42,78,82,92

D.56,78,82,92

参考解析

解析:要找的数是92,所以流程图中的key=92。数组中有10个数,所以n=10;p2=10-1=90第一次执行m=(p1+p2y2)/2后,m=4,d(4)的值为42;42小于92,所以执行p1=m+t=5,p1<p2,再次执行m=(p1+p2)/2。第二次执行m=(p1+p2)/2后,m=7,d(7)的值为82;82小于92,所以执行p1=m+1=8,p1<p2,再次执行m=(p1+p2)/2。第三次执行m=(p1+p2)/2后,m=8,d(8)的值为92;d(8)=key,查找成功。所以依次被查到的元素值是42,82,92。

相关考题:

在有n个无序无重复元素值的数组中查找第i小的数的算法描述如下:任意取一个元素r,用划分操作确定其在数组中的位置,假设元素r为第k小的数。若i等于k,则返回该元素值;若i小于k,则在划分的前半部分递归进行划分操作找第i小的数;否则在划分的后半部分递归进行划分操作找第k-i小的数。该算法是一种基于()策略的算法。 A.分治B.动态规划C.贪心D.回溯

针对二分查找算法,假设一个有序数组有136个元素,那么要查找到第10个元素,需要比较的元素为()A.68,34,17,9,13,11,10B.68,34,17,8,12,10C.69,35,18,10D.68,34,18,9,13,11,10

借助于快速排序的算法思想,在一组无序的记录中查找给定关键字值等于key的记录。设此组记录存放于数组r[l..n]中。若查找成功,则输出该记录在r数组中的位置及其值,否则显示“not find”信息。请简要说明算法思想并编写算法。

阅读下列说明、流程图和算法,将应填(n)处的字句写在对应栏内。[说明]下面的流程图(如图3所示)用N - S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为 low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:[流程图][算法说明]将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int A[],int low,int hieh)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数void sort(int A[],int L,int H)的功能是实现数组A中元素的递增排序。[算法]void sort(int A[],int L,int H) {if (L<H) {k=p(A,L,R); //p()返回基准数在数组A中的下标sort((4)); //小于基准敷的元素排序sort((5)); //大于基准数的元素排序}}

在11个元素的有序表A[1..11]中,利用折半查找法()查找元素A[8]时,被比较的元素的下标依次是(64)。A.5,7,9,8B.5,9,7,8C.6,9,7,8D.6,9,10,8

下面程序的功能是:用Array函数建立一个含有8个元素的数组,然后查找并在文本框Textl中输出该数组中各元素的最小值。请填空。End Sub

阅读下列说明、流程图和算法,将应填入(n)处的字句写在对应栏内。【流程图说明】下图所示的流程图5.3用N-S盒图形式描述了数组Array中的元素被划分的过程。其划分方法;以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于Array[i],并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。【算法说明】将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int Array[],int low,int high)实现了上述流程图的划分过程并返回基准数在数组Ar ray中的下标。递归函数void sort(int Array[],int L,int H)的功能是实现数组Array中元素的递增排序。【算法】void sort(int Array[],int L,int H){if (L<H) {k=p(Array,L,H);/*p()返回基准数在数组Array中的下标*/sort((4));/*小于基准数的元素排序*/sort((5));/*大于基准数的元素排序*/}}

阅读下列说明和流程图,将应填入(n)的语句写在对应栏内。【流程图说明】下面的流程(如图1所示)用N-S盒图形式描述了在一棵二叉树排序中查找元素的过程,节点有3个成员:data, left和right。其查找的方法是:首先与树的根节点的元素值进行比较:若相等则找到,返回此结点的地址;若要查找的元素小于根节点的元素值,则指针指向此结点的左子树,继续查找;若要查找的元素大于根节点的元素值,则指针指向此结点的右子树,继续查找。直到指针为空,表示此树中不存在所要查找的元素。【算法说明】【流程图】将上题的排序二叉树中查找元素的过程用递归的方法实现。其中NODE是自定义类型:typedef struct node {int data;struct node * left;struct node * right;}NODE;【算法】NODE * SearchSortTree(NODE * tree, int e){if(tree!=NULL){if(tree->data<e)(4); //小于查找左子树else if(tree->data<e)(5); //大于查找左子树else return tree;}return tree;}

阅读下列说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】 设有二维整数数组(矩阵)A[1:m,1:n],其每行元素从左到右是递增的,每列元素从上到下是递增的。以下流程图旨在该矩阵中需找与给定整数X相等的数。如果找不到则输出false;只要找到一个(可能有多个)就输出True以及该元素的下标i和j(注意数组元素的下标从1开始)。 例如,在如下矩阵中查找整数8,则输出伟:True,4,1 2 4 6 9 4 5 9 10 6 7 10 12 8 9 11 13 流程图中采用的算法如下:从矩阵的右上角元素开始,按照一定的路线逐个取元素与给定整数X进行比较(必要时向左走一步或向下走一步取下一个元素),直到找到相等的数或超出矩阵范围(找不到)。【流程图】【问题】该算法的时间复杂数是() 供选择答案:A.O(1) B.O(m+n) C.O(m*n) D,O(m+n)

将数据元素2,4,6,8,10,12,14,16,18,20依次存放于一个一维数组中,然后采用折半查找方法查找数组元素12,被比较过的数组元素的下标依次为(52)。A.10,16,12B.10,12,16C.5,8,6D.5,6,8

●试题一阅读下列说明和流程图,将应填入(n)的语句写在答题纸的对应栏内。【流程图说明】下面的流程(如图1所示)用N-S盒图形式描述了在一棵二叉树排序中查找元素的过程,节点有3个成员:data,left和right。其查找的方法是:首先与树的根节点的元素值进行比较:若相等则找到,返回此结点的地址;若要查找的元素小于根节点的元素值,则指针指向此结点的左子树,继续查找;若要查找的元素大于根节点的元素值,则指针指向此结点的右子树,继续查找。直到指针为空,表示此树中不存在所要查找的元素。【算法说明】【流程图】将上题的排序二叉树中查找元素的过程用递归的方法实现。其中NODE是自定义类型:typedef struct node{int data;struct node*left;struct node*right;}NODE;【算法】NODE*SearchSortTree(NODE*tree,int e){if(tree!=NULL){if(tree-datae)(4) ;∥小于查找左子树else if(tree-datae)(5) ;∥大于查找左子树else return tree;}return tree;}

●试题二阅读下列说明、流程图和算法,将应填入(n)处的字句写在答题纸的对应栏内。【说明】下面的流程图(如图3所示)用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:【流程图】图3流程图【算法说明】将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int A[],int low,int high)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数void sort(int A[],int L,int H)的功能是实现数组A中元素的递增排序。【算法】void sort (int A[], int 1,int H){if ( LH){k=p(A,L,R);//p()返回基准数在数组A中的下标sort( (4) );//小于基准数的元素排序sort( (5) );//大于基准数的元素排序}}

已知有序数组a的前10000个元素是随机整数,现需查找某个整数是否在该数组中。以下方法中,( )的查找效率最高。A.二分查找法B.顺序查找法C.逆序查找法D.哈希查找法

如图10所示的流程图是一种查找算法,用该算法在数组d{15,28,35,37,42,56,78,82,92,98}中查找92,依次被查到的元素值是()。A.42,82,92B.56,82,92C.42,78,82,92D.56,78,82,92

在12个互异元素构成的有序数组 a[1..12] 中进行二分查找(即折半查找,向下取 整),若待查找的元素正好等于a[9],则在此过程中,依次与数组中的( )比较后,查找成功结束。 A.a[6]、 a[7]、 a[8]、 a[9] B.a[6]、a[9] C. a[6]、 a[7]、 a[9] D.a[6]、 a[8]、 a[9]

以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格。

有序表为{1,2,4,6,10,18,20,32},用课本中折半查找算法查找值18,经()次比较后成功查到。A3B2C4D5

用DOM操作查找元素,下列查找到是数组的是()。A、通过标签来查找B、通过id来查找C、通过class查找D、通过name属性查找

在有n个无序无重复元素值的数组中查找第i小的数的算法描述如下:任意取一个元素r,用划分操作确定其在数组中的位置,假设元素r为第k小的数。若i等于k,则返回该元素值;若i小于k,则在划分的前半部分递归进行划分操作找第i小的数;否则在划分的后半部分递归进行划分操作找第k-i小的数。该算法是一种基于()策略的算法。A、分治B、动态规划C、贪心D、回溯

下列关于流程图的说法中,正确的是()。A、与其它描述算法的工具相比,流程图直观明了B、流程图就是全部用符号来表达算法C、目前常用的流程图符号标准由联合国制定D、用流程图描述算法比较难以看懂

在有序表A[1..12]中,采用二分查找算法查等于A[12]的元素,所比较的元素下标依次为()。

数据结构与算法里,O(n)是以下哪种算法的复杂度()。A、顺序查找B、顺序表删除元素C、顺序表插入元素D、单链表查找第i个元素

折半查找又称为(),使用该查找算法的前提条件是,查找表中记录相应的关键字值必须按()。

有序表为{1,2,4,6,10,18,20,32},用课本中折半查找算法查找值18,经()次比较后成功查到。A、3B、2C、4D、5

填空题折半查找又称为(),使用该查找算法的前提条件是,查找表中记录相应的关键字值必须按()。

单选题有序表为{1,2,4,6,10,18,20,32},用课本中折半查找算法查找值18,经()次比较后成功查到。A3B2C4D5

填空题在有序表A[1..12]中,采用二分查找算法查等于A[12]的元素,所比较的元素下标依次为()。