当前位置: 首页 > 所有资源 > 《数据结构》资源 > 电大资源网11252《数据结构(本)》形考任务4及答案(课程号:02272)

电大资源网11252《数据结构(本)》形考任务4及答案(课程号:02272)2025年春

最近更新:2024-11-28
110

形考作业4

2.对线性表进行二分查找时,要求线性表必须()。

A.以顺序存储方式

B.以链接存储方式

C.以顺序存储方式,且数据元素有序

D.以链接存储方式,且数据元素有序

 

3.采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为()。

A.n

B.n/2

C.(n+1)/2

D.(n-1)/2

 

4.有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为()。

A.29/10

B.31/10

C.26/10

D.29/9

 

5.已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较()次。

A.3

B.4

C.5

D.6

 

6.有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,应该选择的序列是()。

A.45,24,53,12,37,96,30

B.37,24,12,30,53,45,96

C.12,24,30,37,45,53,96

D.30,24,12,37,45,96,53

 

7.对于顺序存储的有序表{5,12,20,26,37,42,46,50,64},若采用折半查找,则查找元素26的比较次数是()。

A.3

B.6

C.4

D.5

 

8.在所有的排序方法中,关键字比较的次数与记录初始排列秩序无关的是()。

A.冒泡排序

B.希尔排序

C.直接选择排序

D.直接插入排序

 

9.从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。将其放入已排序序列的正确的位置上,此方法称为()。

A.插入排序

B.选择排序

C.交换排序

D.归并排序

 

10.依次将每两个相邻的有序表合并成一个有序表的排序方法称为()。

A.插入排序

B.交换排序

C.选择排序

D.归并排序

 

11.当两个元素出现逆序的时候就交换位置,这种排序方法称为()。

A.插入排序

B.交换排序

C.选择排序

D.归并排序

 

12.每次把待排序的区间划分为左、右两个子区间,其中左区间中记录的关键字均小于等于基准记录的关键字,右区间中记录的关键字均大于等于基准记录的关键字,这种排序称为()。

A.插入排序

B.快速排序

C.堆排序

D.归并排序

 

13.一组记录的关键字序列为(46,20,30,7956384084,90,110),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为()。

A.4020,30,3846567984,90,110

B.20,30,403846795684,90,100

C.30,20,403846845679,90,100

D.20,30 384046567984,90,100

 

14.在有序表{10,1434434764758090}中,用折半查找法查找值80时,经()次比较后查找成功。

A.4

B.2

C.3

D.5

 

15.对序列(4938659776134750)采用直接插入排序法进行排序,要把第七个元素47插入到已排序中,为寻找插入的合适位置需要进行()次元素间的比较。

A.3

B.4

C.5

D.6

 

16.排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为()排序。

A.归并

B.插入

C.选择

D.快速

 

17.一组记录的关键字序列为(265936182025),利用堆排序的方法建立的初始小根堆为()。

A.261859203625

B.182025592636

C.182036592625

D.265936182025

 

18.一组记录的关键字序列为(25481635798223403672),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为()。

A.16253548234079823672

B.16253548798223364072

C.16254835798223364072

D.16253548792336408272

 

19.已知10个数据元素为(54281634736295602643),对该数列从小到大排序,经过一趟冒泡排序后的序列为()。

A.16283454736260264395

B.28163454627360264395

C.28163454626073264395

D.16283454626073264395

 

20.一组记录的关键字序列为(467956384084),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为()。

A.403846795684  

B.403846567984

C.403846845679

D.384046567984

 

21.一组记录的关键字序列为(80,57,41,39,46,47),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为()。

A.394641578047

B.394746804157

C.413946475780

D.398046474157

 

23.以下函数是二叉排序树的查找算法,若二叉树为空,则返回根结点的指针,否则,返回值是指向树结点的结构指针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== __(1)__)

              return (bt);

             p=bt;

             while(p->key!= __(2)__)       

              {  if(k<p->key)       

                  __(3)__;

                 else __(4)__;       

                 if(p==NULL) break;        

              }

             return(__(5)__;

         }

 

提示

答案

答案池

选项1

 

p=p->right 

选项2

 

NULL

选项3

 

k

选项4

 

p=p->left

选项5

 

p

 

24.以下程序是折半插入排序的算法

    设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,程序是要把a[i] 插入到已经有序的序列a[1],…a[i-1]中。

   void binsort (NODE a[ ],int n)

   {   int x,i,j,s,k,m;

       for i=2i<=__(1)__;i++

       {  a[0]=a[i];

          x= a[i].key;

          s=1;

          j=i-1;

          while (s<=j)

          {  m=__(2)__

             if( x<a[m].key)

                __(3)__

             else

                __(4)__

           }

          for ( k=i-1;k>=j+1;k- -)

            __(5)__=a[k];

        a[j+1]=a[0];

       }

    }

 

提示

答案

答案池

选项1

 

(s+j)/2

选项2

 

n

选项3

 

 a[k+1]

选项4

 

 j=m-1

选项5

 

s=m+1

 

26.1)设查找表为(1,10,11,14,23,27,29,55,68) ,画出对上述查找表进行折半查找所对应的判定树,为了成功查找到元素14,需要依次与元素   1    进行比较。

A.23,10,1,14       B.23,29,27,14      C.23,10,11,14     D.23,29,55,14

  2)在等概率条件下,成功查找的平均比较次数为   2   

A.24/9     B.25/9    C.3     D.2.5            

 

27.1)一组记录的关键字序列为(478057394146),利用堆排序的方法建立的初始堆为   1    (堆顶元素是最小元素,采用树的形式建堆)。

   A.39,41,57,80,47,46        B.39,41,46,80,47,57 

   C.39,47,46,80,41,57        D.39,41,57,80,46,47   

  2)输出堆顶元素后,调整后的堆为   2     

A.41,47,46,80,57              B.41,57,46,80,47

C.41,57,80,47,46               D.41,80,46,47,57                    

 

28.1)对关键字序列(56,51,71,54,46,106),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为   1   

       A.46,51,56,54,71,106              B.56,51,54,46,71,106

      C.46,51,54,56,71,106               D.56,51,46,54,71,106

  2)一组记录的关键字序列为(60,478057 394146,30),利用归并排序的方法,经过(2,2)归并的结果序列为   2    .

A.(30, 57, 60, 80,47,39,41,46  )   B.(47, 60, 57, 80, 30,39,41,46  )

C.(41, 57, 60, 80, 30,39,47,46  )  D.(47, 57, 60, 80, 30,39,41,46  )         

 

29.1)对关键字序列(36,69,46,28,30,74)采用快速排序,以第一个关键字为分割元素,经过一次划分后的结果序列为   1   

A.302846366974         B.283036466974

C.283046366974       D.302836466974

  2)用冒泡法对上述序列排序,经两趟冒泡的结果序列为   2   

A.36,28,30,46,69,74          B.36,46,28,20,69,74          

C.38,36,30,46,69,74          D.28,36,,30,46,69,74          

 

30.1)一组记录的关键字序列为{454065433595}写出利用快速排序的方法,以第一个记录为基准得到的一趟划分的结果为   1   

 A.35 40 65 45 35 95

 B.35 40 65 43 45 95

 C.35 40 43 45 65 95

 D.35 40 45 43 65 95

   2)对上述序列 利用直接插入排序,逐次插入过程中,共进行了   2    次元素间的比较。

A.8     B.11     C.9     D.10            

下载地址1
5积分
下载附件

重要提示:本站不支持微信或苹果手机充值及下载,为了避免下载出错,请用电脑访问下载资源