学分指南  学分抽奖  学分竞答  学分竞猜
普通帖程序员每日一练(45)
丁丹43 2008-11-11 18:57:16 [个人资料] [Blog]
[回复] 楼主 分数:0

阅读下列算法说明和算法,将应填入(n)处的语句写在答题纸的对应栏内。

【说明】

为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组R1..n]进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置(假设R[]中的元素互不相同)

【算法】

1.变量声明

XDataType

ijlowhighmidR0..n

2.每循环一次插入一个Ri

循环:i1为步长,从2n,反复执行

①准备

X<-Ri];  (1)  high<-i-1

②找插入位置

循环:当  (2)  时,反复执行

  (3) 

Xkey<Rmid].key

high<-mid-1

否则  (4) 

③后移

循环:j-1为步长,从  (5)  ,反复执行

Rj+1<-Rj

④插入

Rlow<-X

3.算法结束

 

 

【答案】
(1)low<-1
(2)lowhigh
(3)mid<-int((low+high)/2)
(4)low<-mid+1
 (5)i-1low
  
dzq1943 2008-11-11 20:42:25 [个人资料] [Blog]
[回复] [引用] 第1楼 得分:0
第三个问做错了···得巩固下···
  
广告也精彩
 
1
快速回复:
注意:本论坛里的任何言论仅代表发言者个人的观点,与学赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的帖子违反学赛网论坛规则,将立即删除;如果再次发布,则封IP。
loading...