【文章內(nèi)容簡介】
169。 School of Computer Science and Technology, SWUST 14 拓?fù)渑判?(Topological sorting) 169。 School of Computer Science and Technology, SWUST 15 拓?fù)渑判?(Topological sorting) 169。 School of Computer Science and Technology, SWUST 16 生成排列 (Permutations) ? 生成由 n個(gè)元素 {a1,a2,...,an}的排列 算法 JohnsonTrotter(n) //生成 n個(gè)數(shù)的排列 //輸入:一個(gè)正整數(shù) n //輸出: {1,...,n}的所有的排列數(shù) 將第一個(gè)排列初始化為 12...n while 存在一個(gè)移動(dòng)整數(shù) k do 求最大的移動(dòng)整數(shù) k 把 k和它箭頭指向的相鄰整數(shù)互換 調(diào)轉(zhuǎn)所有大于 k的整數(shù)的方向 課后思考:如何按照 字典序 生成 a1a2...an后面的排列呢? 169。 School of Computer Science and Technology, SWUST 17 生成子集( Subset) ?背包問題中如何窮舉出給定物品集合的所有子集? A={a1,a2,...,an}={a1,a2,...,an1} ∪ {an} 169。 School of Computer Science and Technology, SWUST 18 假幣問題 (FakeCoin) 當(dāng) n1時(shí), W(n)=W([n/2])+1 , W(1)=0 169。 School of Computer Science and Technology, SWUST 19 俄式乘法 (Multiplication 225。 la russe) ? 兩個(gè)大整數(shù) m和 n乘法 n * m= n — 2 * 2 * m n為偶數(shù) n * m= n 1 —— 2 * 2 * m + m n為奇數(shù) 169。 School of Computer Science and Technology, SWUST 20 約瑟夫斯問題 (Josephus) ? 在約瑟夫斯環(huán)中最后的幸存者