基于单链表的快速排序 1.怎么对单向链表进行快速排序?
1.怎么对单向链表进行快速排序?单向链表扩展为双向链表,然后快速排序。这需要o(n)空间,这个空间比数组o(logn)大得多,但它可以保证o(nlogn)完成struct student*printf
1.怎么对单向链表进行快速排序?
单向链表扩展为双向链表,然后快速排序。这需要o(n)空间,这个空间比数组o(logn)大得多,但它可以保证o(nlogn)完成
struct student*printfusort(struct student*head){struct student*P1,*P2,*pTemp,*pfinished=null/tfor(P1=headp1->next!=pfinished)//将链表从大到小排序(此处使用气泡法)t//P1使其始终指向head节点,pfinished使其始终指向已排序的第一个节点。作为中介,pTemp保存P2的上一个节点(P2=p1p2->next!=p完成)t/t{t/t/TIF(P2->num