题目为随机抽题 请用CTRL+F来搜索试题
点击支付下载即可看见答案

形考任务4
一、单项选择题(每小题2分,共40分)
对线性表进行二分查找时,要求线性表必须(   )。
采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为(   )。
有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为(   )。
已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较(   )次。
有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,应该选择的序列是(   )。
对于顺序存储的有序表{5,12,20,26,37,42,46,50,64},若采用折半查找,则查找元素26的比较次数是(   )。
在所有的排序方法中,关键字比较的次数与记录初始排列秩序无关的是(   )。
从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。将其放入已排序序列的正确的位置上,此方法称为(   )。
依次将每两个相邻的有序表合并成一个有序表的排序方法称为(   )。
当两个元素出现逆序的时候就交换位置,这种排序方法称为(   )。
每次把待排序的区间划分为左、右两个子区间,其中左区间中记录的关键字均小于等于基准记录的关键字,右区间中记录的关键字均大于等于基准记录的关键字,这种排序称为(   )。
一组记录的关键字序列为(46,20,30,7956384084,90,110),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为(  )。
在有序表{10,1434434764758090}中,用折半查找法查找值80时,经(     )次比较后查找成功。
对序列(4938659776134750)采用直接插入排序法进行排序,要把第七个元素47插入到已排序中,为寻找插入的合适位置需要进行(   )次元素间的比较。
排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为(   )排序。
一组记录的关键字序列为(265936182025),利用堆排序的方法建立的初始小根堆为(   )。
一组记录的关键字序列为(25481635798223403672),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为(   )。
已知10个数据元素为(54281634736295602643),对该数列从小到大排序,经过一趟冒泡排序后的序列为(   )。
一组记录的关键字序列为(467956384084),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为(   )。
一组记录的关键字序列为(80,57,41,39,46,47),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为(      )。
二、程序填空题(每题10分,2题,共20分。请点击正确选项,然后拖拽至相应的方框上)
以下函数是二叉排序树的查找算法,若二叉树为空,则返回根结点的指针,否则,返回值是指向树结点的结构指针p(查找成功p指向查到的树结点,不成功p指向为NULL)完成程序中的空格
typedef struct  Bnode
{  int  key;
struct  Bnode *left;
struct  Bnode *right;
} Bnode;
      Bnode *BSearch(Bnode  *bt, int k)
       /* bt用于接收二叉排序树的根结点的指针,k用以接收要查找的关键字*/
        {   Bnode *p;
             if(bt==)
              return (bt);
             p=bt;
             while(p->key!= )
              { if(k<p->key)
                 ;
                 else   ;
                 if(p==NULL) break;
              }
             return( ;
        }
试题 22
   以下程序是折半插入排序的算法
   设待排序的记录序列存放在a[1],a[n]中,以a[0]作为辅助工作单元,程序是要把a 插入到已经有序的序列a[1],a[i-1]中。
  void binsort (NODE a[ ],int n)
  {   int x,i,j,s,k,m;
      for i=2i<= ;i++
      {  a[0]=a;
         x= a.key;
    s=1;
         j=i-1;
         while (s<=j)
         {  m=
             if( x<a[m].key)
             else
           }
         for ( k=i-1;k>=j+1;k- -)
             a[k+1] =a[k];
       a[0];
      }
}
三、综合题(每小题8分,共40分)
1)设查找表为(11011142327295568),画出对上述查找表进行折半查找所对的判定树,为了成功查找到元素14,需要依次与元素进行比较。
2)在等概率条件下,成功查找的平均比较次数为
1)一组记录的关键字序列为(478057394146),利用堆排序的方法建立的初始堆为(堆顶元素是最小元素,采用树的形式建堆)
2)输出堆顶元素后调整后的堆为
1)对关键字序列(5651715446106),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为
2)一组记录的关键字序列为(6047805739414630),利用归并排序的方法经过(2.2)归并的结果序列为
1)对关键字序列(366946283074)采用快速排序,以第一个关键字为分割元素,经过一次划分后的结果序列为
2)用冒泡法对上述序列排序经两趟冒泡的结果序列为
1)一组记录的关键字序列为(454065433595]写出利用快速排序的方法,以第一个记录为基准得到的一趟划分的结果为
2)对上述序列利用直接插入排序,逐次插入过程中,共进行了次元素间的比较。

主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。