基于單鏈表的快速排序 1.怎么對(duì)單向鏈表進(jìn)行快速排序?
1.怎么對(duì)單向鏈表進(jìn)行快速排序?單向鏈表擴(kuò)展為雙向鏈表,然后快速排序。這需要o(n)空間,這個(gè)空間比數(shù)組o(logn)大得多,但它可以保證o(nlogn)完成struct student*printf
1.怎么對(duì)單向鏈表進(jìn)行快速排序?
單向鏈表擴(kuò)展為雙向鏈表,然后快速排序。這需要o(n)空間,這個(gè)空間比數(shù)組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節(jié)點(diǎn),pfinished使其始終指向已排序的第一個(gè)節(jié)點(diǎn)。作為中介,pTemp保存P2的上一個(gè)節(jié)點(diǎn)(P2=p1p2->next!=p完成)t/t{t/t/TIF(P2->num