ÖÐÄÏ´óѧÊý¾Ý½á¹¹ÓëËã·¨µÚ9Õ²éÕҿκó×÷Òµ´ð°¸ ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2026/5/7 16:32:16ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

©À©¤©¤©È 10©¦ ¡Ä ©¦ ©¸©¤©¤©¼

(2)ÏßÐÔ̽²é·¨ÈçÏÂͼ£º

ϱê 0 1 2 3 4 5 6 7 8 9 10 ©°©¤©Ð©¤©Ð©¤©Ð©¤©Ð©¤©Ð©¤©Ð©¤©Ð©¤©Ð©¤©Ð©¤©Ð©¤©´ T[0..10]©¦33©¦1 ©¦13©¦12©¦34©¦38©¦27©¦22©¦ ©¦ ©¦ ©¦ ©¸©¤©Ø©¤©Ø©¤©Ø©¤©Ø©¤©Ø©¤©Ø©¤©Ø©¤©Ø©¤©Ø©¤©Ø©¤©¼ ̽²é´ÎÊý 1 1 1 3 4 1 7 8

ÓÃÀ­Á´·¨µÄ²éÕҳɹ¦Æ½¾ù²éÕÒ³¤¶ÈΪ£º ASLsucc=(1*4+2*3+3*1)/8=1.625

²éÕÒʧ°Üʱƽ¾ù²éÕÒ³¤¶ÈΪ£º

ASLunsucc=(2+3+1+0+0+0+2+0+0+0+0)/11=0.73

ÓÃÏßÐÔ̽²é·¨²éÕҳɹ¦Ê±Æ½¾ù²éÕÒ³¤¶ÈΪ£º ASLsucc=(1+1+1+3+4+1+7+8)/8=3.25

²éÕÒʧ°Üʱƽ¾ù²éÕÒ³¤¶ÈΪ£º

ASLunsucc=(9+8+7+6+5+4+3+2+1+1+1)/11=4.3

×°ÌîÒò×Ó¦ÁÀ­Á´=4/11=0.36 ¦ÁÏßÐÔ̽²é=8/11=0.73

22.¼Ù¶¨ÓÐk¸ö¹Ø¼ü×Ö»¥ÎªÍ¬Òå´Ê£¬ÈôÓÃÏßÐÔ̽²é·¨°ÑÕâЩͬÒå´Ê´æÈëÉ¢ÁбíÖУ¬ÖÁÉÙÒª½øÐжàÉÙ´Î̽²é? ´ð£º

ÖÁÉÙÒª½øÐÐ1+2+3...+k-1+k´Î̽²é¡£

Ò²¾ÍÊÇ˵£¬ÔÚÉ¢ÁбíµÄÒ»Á¬´®Á¬Ðø¿Õ¼äÄÚ£¬µÚÒ»¸ö¹Ø¼ü×ÖÖ»Ðè̽²éÒ»´Î£¬µÚ¶þ¸ö¾ÍҪ̽²é2´Î£¬Èç´ËÕâ°ã£¬µÚk¸ö¹Ø¼ü×Ö¾ÍҪ̽²ék´Î²ÅÄÜÕÒµ½Î»Öôæ·Å¡£ËùÒÔÖÁÉÙÒª°ÑËüÃÇÈ«¼ÓÆðÀ´²Å¹»¡£

23.Ϊʲô˵µ±×°ÌîÒò×ӷdz£½Ó½ü1ʱ£¬ÏßÐÔ̽²éÀàËÆÓÚ˳Ðò²éÕÒ?Ϊʲô˵µ±×°ÌîÒò×ӱȽÏС(±ÈÈç¦Á=0.7×óÓÒ)ʱ£¬É¢ÁвéÕ񵀮½¾ù²éÕÒʱ¼äΪO(1)? ´ð£º

µ±¦Á·Ç³£½Ó½ü1ʱ£¬Õû¸öÉ¢ÁÐ±í¼¸ºõ±»×°Âú¡£ÓÉÓÚÏßÐÔ̽²é·¨Ôڹؼü×ÖͬÒåʱ½â¾ö³åÍ»µÄ°ì·¨ÊÇÏßÐÔµØÏòºó²éÕÒ£¬µ±Õû¸ö±í¼¸ºõ×°Âúʱ£¬Ëü¾ÍºÜÀàËÆÓÚ˳Ðò²éÕÒÁË¡£

µ±¦Á±È½ÏСʱ£¬¹Ø¼ü×ÖÅöײµÄ¼¸ÂʱȽÏС£¬Ò»°ãÇé¿öÏÂÖ»Òª°´ÕÕÉ¢Áк¯Êý¼ÆËã³öµÄ½á¹ûÄܹ»1´ÎÐÔ¾ÍÕÒµ½ÏàÓ¦½áµã£¬Òò´ËËüµÄƽ¾ù²éÕÒʱ¼ä½Ó½üÓÚ1.

24.Éè˳Ðò±íÖйؼü×ÖÊǵÝÔöÓÐÐòµÄ£¬ÊÔдһ˳Ðò²éÕÒËã·¨£¬½«ÉÚ±øÉèÔÚ±íµÄ¸ßϱê¶Ë¡£È»ºóÇó³öµÈ¸ÅÂÊÇé¿öϲéÕҳɹ¦Óëʧ°ÜʱµÄASL. ´ð:

typedef struct{ KeyType key£»

InfoType otherinfo£» //´ËÀàÐÍÒÀÀµÓÚÓ¦Óà }NodeType£»

typedef NodeType SeqList[n+1]£» //nºÅµ¥ÔªÓÃ×÷ÉÚ±ø

int SeqSearch(Seqlist R£¬KeyType K)

{ //Ôڹؼü×ÖµÝÔöÓÐÐòµÄ˳Ðò±íR[0..n-1]ÖÐ˳Ðò²éÕҹؼü×ÖΪKµÄ½áµã£¬ //³É¹¦Ê±·µ»ØÕÒµ½µÄ½áµãλÖã¬Ê§°Üʱ·µ»Ø-1 int i£»

R[n].key=K£» //ÉèÖÃÉÚ±ø

for(i=0£»R[i].key<=K;i--)£» //´Ó±íǰÍùºóÕÒ if (i

µÈ¸ÅÂÊÇé¿öϲéÕҳɹ¦ASL=(1+2+3+¡­+n)/n

µÈ¸ÅÂÊÇé¿öϲéÕÒʧ°ÜʱµÄASL=(1+2+3+¡­+n+n+1)/(n+1)

25ÊÔд³ö¶þ·Ö²éÕҵĵݹéËã·¨¡£ ½â£º

int BinSearch(SeqList R£¬KeyType K£¬int low£¬int high)

{ //ÔÚÓÐÐò±íR[low..high]ÖнøÐжþ·Ö²éÕÒ£¬³É¹¦Ê±·µ»Ø½áµãµÄλÖã¬Ê§°Üʱ·µ»ØÁã int mid£» //Öõ±Ç°²éÕÒÇø¼äÉÏ¡¢Ï½çµÄ³õÖµ if (low<=high){ //µ±Ç°²éÕÒÇø¼äR[low..high]·Ç¿Õ mid=(low+high)/2£»

if(R[mid].key==K) return mid£» //²éÕҳɹ¦·µ»Ø if(R[mid].kdy>K)

return BinSearch( R£¬K,low£¬mid-1)//ÔÚR[low..mid-1]ÖвéÕÒ else

return BinSearch( R£¬K,mid+1£¬high)£» //ÔÚR[mid+1..high]ÖвéÕÒ }

return 0£» //µ±low>highʱ±íʾ²éÕÒÇø¼äΪ¿Õ£¬²éÕÒʧ°Ü } //BinSeareh

26ÊÔдһËã·¨ÅÐ±ð¸ø¶¨µÄ¶þ²æÊ÷ÊÇ·ñΪ¶þ²æÅÅÐòÊ÷£¬Éè´Ë¶þ²æÊ÷ÒÔ¶þ²æÁ´±íΪ´æ´¢½á¹¹£¬ÇÒÊ÷ÖнáµãµÄ¹Ø¼ü×Ö¾ù²»Ïàͬ¡£ ½â£º

Óɶþ²æÅÅÐòÊ÷µÄ¶¨Òå¿ÉµÃ£º¶þ²æÅÅÐòÊ÷ÖÐ×ó×ÓÊ÷µÄËùÓнáµãµÄÖµ¶¼Ð¡ÓÚ¸ù½áµãµÄÖµ£¬ËùÓÐÓÒ×ÓÊ÷ÖнáµãµÄÖµ¶¼´óÓÚ¸ù½áµãµÄÖµ¡£ÄÇôֻҪ¶Ô´ýÅж¨µÄ¶þ²æÊ÷ÖеĽáµã°´²ã±éÀú²¢Åжϼ´¿É¡£ÔÚ¸ÃËã·¨ÖÐÒªÓõ½¶ÓÁб£´æÒѱéÀúµÄ½áµãÖ¸Õë¡£

typedef BinTNode *DataType;//Ñ­»·¶ÓÁÐÖÐÔªËØÎª¶þ²æÊ÷½áµãÖ¸Õë int BinSortStree(BinTree T) {

CirQueue Q;

BinTNode *p;

if (!T) return 1;//¿ÕÊ÷Ϊ¶þ²æÅÅÐòÊ÷ InitQueue(&Q); EnQueue(&Q,T); while(!QueueEmpty(&Q)) {

p=DeQueue(&Q); if (p->lchild)

if (p->datalchild->data) return -1;//²»ÊǶþ²æÅÅÐòÊ÷ else EnQueue(&Q,p->lchild); if (p->rchild)

if (p->data>p->rchild->data) return -1;//²»ÊǶþ²æÅÅÐòÊ÷ else EnQueue(&Q,p->rchild); }

return 1;//ÊǶþ²æÅÅÐòÊ÷ }

27.ÊÔдһµÝ¹éËã·¨£¬´Ó´óµ½Ð¡Êä³ö¶þ²æÅÅÐòÊ÷ÖÐËùÓÐÆäÖµ²»Ð¡ÓÚxµÄ¹Ø¼ü×Ö¡£ÒªÇóËã·¨µÄʱ¼äΪO(lgn+m)£¬nΪÊ÷ÖнáµãÊý£¬mΪÊä³ö¹Ø¼ü×Ö¸öÊý(Ìáʾ£ºÏȱéÀúÓÒ×ÓÊ÷£¬ºó±éÀú×ó×ÓÊ÷)¡£ ´ð£º

typedef int KeyType£» //¼Ù¶¨¹Ø¼ü×ÖÀàÐÍΪÕûÊý typedef struct node { //½áµãÀàÐÍ KeyType key£» //¹Ø¼ü×ÖÏî

InfoType otherinfo£» //ÆäËüÊý¾ÝÓò£¬InfoTypeÊÓÓ¦ÓÃÇé¿ö¶ø¶¨£¬ÏÂÃæ²»´¦ÀíËü struct node *lchild£¬*rchild£» //×óÓÒº¢×ÓÖ¸Õë } BSTNode£»

typedef BSTNode *BSTree£»

void OUTPUTNODE(BSTree T,KeyType x)

{//´Ó´óµ½Ð¡Êä³ö¶þ²æÅÅÐòÊ÷ÖÐËùÓÐÆäÖµ²»Ð¡ÓÚxµÄ¹Ø¼ü×Ö

if (T) {

OUTPUTNODE( T->rchild,x); if (T->key>=x) printf(\ OUTPUTNODE( T->Lchild,x); } }

28.дһ¸ö±éÀúB-Ê÷µÄËã·¨£¬Ê¹Êä³öµÄ¹Ø¼ü×ÖÐòÁеÝÔöÓÐÐò¡£Ëã·¨ÖеĶÁÅ̲Ù×÷¿É¼Ù¶¨ÎªDiskRead¡£ ´ð£º

#define Max l000 //½áµãÖйؼü×ÖµÄ×î´óÊýÄ¿£ºMax=m-1£¬mÊÇB-Ê÷µÄ½× #define Min 500 //·Ç¸ù½áµãÖйؼü×ÖµÄ×îСÊýÄ¿£ºMin=¡¸m/2(-1 typedef int KeyType£» //KeyTypeÓ¦ÓÉÓû§¶¨Òå

typedef struct node{ //½áµã¶¨ÒåÖÐÊ¡ÂÔÁËÖ¸Ïò¹Ø¼ü×Ö´ú±íµÄ¼Ç¼µÄÖ¸Õë int keynum£» //½áµãÖе±Ç°ÓµÓеĹؼü×ֵĸöÊý£¬keynum<=Max KeyType key[Max+1]£» //¹Ø¼ü×ÖÏòÁ¿Îªkey[1..keynum]£¬key[0]²»Óᣠstruct node *parent£» //Ö¸ÏòË«Ç×½áµã

struct node *son[Max+1]£»//º¢×ÓÖ¸ÕëÏòÁ¿Îªson[0..keynum] }BTreeNode£»

typedef BTreeNode *BTree£»

void travelBtree(BTree T){ //°´¹Ø¼ü×ÖµÝÔöÐòÊä³öB-Ê÷ÐòÁÐ int i; if (T){

for(i=0;i<=T->keynum;i++)//T->keynum¸ö¹Ø¼ü×ֵĽáµãÓÐT->keynum+1¿Ã×ÓÊ÷ {

if (T->son[i]){

DiskRead(T->son[i]);//¶ÁÈë¸ù½áµãµÄµÚi¿Ã×ÓÊ÷ travelBtree(T->son[i]);//±éÀúµÚi¿Ã×ÓÊ÷