我在編程的排序部分還不是很先進,所以我一直在尋找一些有關我的算法的幫助。鏈接列表插入排序
void sortList()
{
Item_PTR tmpNxt = current->nextItem;
Item_PTR tmpPTR = current;
int a, tmp;
while(tmpNxt != NULL)
{
a = tmpPTR->value;
while(tmpNxt != tmpPTR && tmpNxt->value < a)
{
tmp = a;
tmpPTR->value = tmpNxt->value;
tmpNxt->value = tmp;
tmpPTR = tmpPTR->nextItem;
}
tmpPTR = current;
tmpNxt = tmpNxt->nextItem;
}
}
之前列表狀態排序:9 8 7 6 5 4 3 2 1 排序後:1 9 8 7 6 5 4 3 2
我不知道爲什麼... I」我在紙上玩過很多電腦,我覺得它應該可以工作......但也許其他人會發現問題。
當前是一個全局指針,它總是具有列表中第一個/頂部元素的位置。
你的意思是 「9 8 7 6 5 4 3 2 1」 是列表的排序前的狀態和 「1 9 8 7 6 5 4 3 2」 排序後的狀態? – 2010-10-10 17:34:26
是^^;對不起,我會在第一篇文章中說清楚。 – Bri 2010-10-10 17:35:13
你爲什麼不用調試器來完成它? – 2010-10-10 17:36:14