1 / 20
文档名称:

数据结构严蔚敏版第十章答案.doc

格式:doc   大小:52KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构严蔚敏版第十章答案.doc

上传人:相惜 2020/7/22 文件大小:52 KB

下载得到文件列表

数据结构严蔚敏版第十章答案.doc

文档介绍

文档介绍:(SqList&L)//监视哨设在高下标端的插入排序算法{  k=;  for(i=k-1;i;--i)//从后向前逐个插入排序    if([i].key>[i+1].key)    {      [k+1].key=[i].key;//监视哨      for(j=i+1;[j].key>[i].key;++j)        [j-1].key=[j].key;//前移      [j-1].key=[k+1].key;//插入    }}//(SqList&L)//二路插入排序的算法{  intd[MAXSIZE];//辅助存储  x=;d=x;  first=1;final=1;  for(i=2;i<=;i++)  {    if([i].key>=x)//插入前部    {      for(j=final;d[j]>[i].key;j--)        d[j+1]=d[j];      d[j+1]=[i].key;      final++;    }    else//插入后部    {      for(j=first;d[j]<[i].key;j++)        d[j-1]=d[j];      d[(j-2)%MAXSIZE+1]=[i].key;      first=(first-2)%MAXSIZE+1;//这种形式的表达式是为了兼顾first=1的情况    }  }//for  for(i=first,j=1;d[i];i=i%MAXSIZE+1,j++)//将序列复制回去    [j].key=d[i];}//(SLList&L)//静态链表的插入排序算法{  [0].key=0;[0].next=1;  [1].next=0;//建初始循环链表  for(i=2;i<=;i++)//逐个插入  {    p=0;x=[i].key;    while([[p].next].key<x&&[p].next)      p=[p].next;    q=[p].next;    [p].next=i;    [i].next=q;  }//for  p=[0].next;  for(i=1;i<;i++)//重排记录的位置  {    while(p<i)p=[p].next;    q=[p].next;    if(p!=i)    {      [p]<->[i];      [i].next=p;    }    p=q;  }//for}//(inta[],intn)//对包含n个元素的数组a进行改进的冒泡排序{  change=n-1;//change指示上一趟冒泡中最后发生交换的元素  while(change)  {    for(c=0,i=0;i<change;i++)      if(a[i]>a[i+1])      {        a[i]<->a[i+1];        c=i+1;//c指示这一趟冒泡中发生交换的元素      }    change=c;  }//while}//(inta[],intn)//相邻两趟是反方向起泡的冒泡排序算法{  low=0;high=n-1;//冒泡的上下界  change=1;  while(low<high&&change)  {    change=0;    for(i=low;i<high;i++)//从上向下起泡      if(a[i]>a[i+1])      {        a[i]<->a[i+1];        change=1;      }    high--;//修改上界    for(i=high;i>low;i--)//从下向上起泡      if(a[i]<a[i-1])      {        a[i]<->a[i-1];        change=1;      }    low++;//修改下界  }//while}//