问答题
设待排序的文件用单链表作存储结构,其形式如下: TYPE pointer=↑node; node=RECORD key:integer: next:pointer; END; 写出以head为头指针的选择排序算法。【中山大学1999二(10分)】
【正确答案】正确答案:选择排序一趟找出一个关键字最小的结点,其数据和当前结点进行交换;若要交换指针,则须记下当前结点和最小结点的前驱指针。核心语句段如下: p=head->next; while(p) (q=p->next; r=p; //设r是指向关键字最小的结点的指针 while(q!=null) (if(q一>datadata)r=q; q=q一>next; } if(r!=p)r一>data<一一>p一>data; p=p一>next; }
【答案解析】