1、如果運算力,和理亂麻的水平不夠。盡量不要復用本地變數(比如c用來計數,「不計數後」,又用來做其它比如作為步長),除非你確認不會出現問題。
2、盡量讓每個邏輯單元(函式內可以有多個邏輯單元)盡量小,邏輯盡量要清晰
3、語言組織能力有限,就說這些了。(**未整理,抱歉了) //
#include "stdafx.h"
#include
#include
int *g_pdata=0;
int g_itotal=4;
typedef struct _testnodetestnode;
void deinitlink(testnode *pnodehead);
int getnodecount(testnode *pnodehead);
int insertnode(testnode **ppnodehead, testnode *pnode, int position);
int getnode(testnode **ppnodehead, int position);
int deletenode(testnode **ppnodehead, int position);
int arrange(testnode **ppnodehead);
testnode *initlink();
int arrangedemo();
int arrangedemo()
testnode *initlink()
else }
return pheadnode; }
int arrange(testnode **ppnodehead)
printf("\n");
return ret; }
int i=0;
for(i=0; ipnode=(testnode *)malloc(sizeof(testnode));
pnode->data=getnode(&pnodehead, i);
pnode->next=0;
deletenode(&pnodehead, i);
arrange(&pnodehead);
insertnode(&pnodehead, pnode, i);
*ppnodehead=pnodehead; }
return ret; }
int getnode(testnode **ppnodehead, int position)
else
else }
}return ret; }
int deletenode(testnode **ppnodehead, int position)
else
else }
}return ret; }
int insertnode(testnode **ppnodehead, testnode *pnode, int position)
else }
else }
}return ret; }
int getnodecount(testnode *pnodehead)
return c; }
void deinitlink(testnode *pnodehead) }
int _tmain(int argc, _tchar* argv)
遞迴實現全排列
生成全排列的最簡單的遞迴方法的思想 1.可以把幾個數字分成前半部和最後一位。對於0123這四個數來說,最後一位 紅色字型 所出現的情況只有以下四類 先不管前三個數的排列組合情況 3 2 1 0這樣我們就把四個數字的排列問題,變成了3個 對於上述的每一行來說 2.終結條件是1個數字的排列就是其本身。直...
全排列遞迴實現
一 遞迴版本 1 演算法簡述 簡單地說 就是第乙個數分別以後面的數進行交換 e g e a b c 則 prem e a.perm b,c b.perm a,c c.perm a,b 然後a.perm b,c ab.perm c ac.perm b abc acb.依次遞迴進 好了,知道演算法之後就...
全排列 遞迴實現
前面我們介紹了全排列的非遞迴演算法,現在我再來寫一下全排列的遞迴演算法 這兩種演算法的演算法思路並不相同。遞迴演算法的思路比較接近於我們現實生活中的思路。1.試想,我們只有兩個數字 12.要對它進行全排列,第一種方式就是12本身,第二種,將12交換,變為21即可。這提示了我們一種交換的思路。2.但這...