[問題] 以quicksort實現linked list的排序...

看板C_and_CPP作者 (JON)時間13年前 (2010/11/24 19:57), 編輯推噓3(303)
留言6則, 3人參與, 最新討論串1/2 (看更多)
遇到的問題: (題意請描述清楚) 若限定函式, 以quicksort對linled list排序 tydefdf struct node{ int data; struct node *next; }NODE; NODE *quicksort(NODE *list) { ????? } 希望得到的正確結果: 有試著撰寫, 但就是怪怪的 程式跑出來的錯誤結果: 是有成功的樣子, 但感覺就是怪怪的 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ 有問題的code: (請善用置底文標色功能) 以下是我所寫的程式碼 : NODE *quicksort(NODE *list) { NODE *left, *right, *last; POLY_NODE *p; int i = 0; if(list == NULL) return list; else { left = right = list; last = left; } while(right->next != NULL) right = right->next; for(p = left->next; p != NULL; p = p->next) { if(p->data < left->data) { last = last->next; SWAP(last->data, p->data); i++; } } SWAP(left->data, last->data); if(i != 0) left = NodeQsort(left); if(last != right) last = NodeQsort(last->next); return list; } 補充說明: 希望能給予指教 或是有夠好的寫法 感謝 -- 吳敦義上午在參加警察大學校慶活動,被問到有人認為他失言乙事,他指出,在景氣寒冬 中想到無薪假的構想,不僅連結勞工情感與道義,而且在寒冬過後,勞工也都一一回到工 作崗位。 他說,「大家風趣與幽默要有嘛!」最後還嘆了口氣說「老天啊!」 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.166.59 ※ 編輯: chizhang 來自: 114.36.166.59 (11/24 19:58)

11/24 20:19, , 1F
後面那兩個if裡的函式是啥!?
11/24 20:19, 1F

11/24 20:22, , 2F
跟據你的for loop 你的pivot是不是在left ?
11/24 20:22, 2F

11/24 21:43, , 3F
list作sort很矛盾喔 因為無法隨機存取...
11/24 21:43, 3F

11/24 21:52, , 4F
可以sort阿, insertion sort就是一個例子
11/24 21:52, 4F

11/25 00:58, , 5F
11/25 00:58, 5F

11/25 03:29, , 6F
拍謝複雜度寫高了 @@ 修正版→http://ppt.cc/t_s4
11/25 03:29, 6F
文章代碼(AID): #1CxFsDtu (C_and_CPP)
文章代碼(AID): #1CxFsDtu (C_and_CPP)