p->next=temp->next;temp->next->prior=p //先将结点从链表上摘下 temp->next=p; p->prior->next=temp; //将temp插到p结点前 temp->prior=p->prior; p->prior=temp; }
else p=p->next; //无交换,指针后移 tail=p; //准备向上起泡 p=tail->prior;
while (exchange && p->prior!=head) //向上(左)起泡,一趟有一最小
元素冒出
if (p->data
{temp=p->prior; exchange=1; //有交换
p->prior=temp->prior;temp->prior->next=p; //先将temp结点从
链表上摘下
temp->prior=p; p->next->prior=temp; //将temp插到p结
点后(右)
temp->next=p->next; p->next=temp; }
else p=p->prior; //无交换,指针前移 head=p; //准备向下起泡
}// while (exchange) } //算法结束
49. typedef struct
{ int key; datatype info}RecType
void CountSort(RecType a[],b[],int n) //计数排序算法,将a中记录排序放入b中
{ for(i=0;i