采用逆序法生成排列 從n個空位開始,從左到右吧這些位置標為1,2,……n。 1:由于在排列中要有 個整數在1的前面,因為必須把1放在位置號為 +1的位置上。 2:由于在排列中要有 個比2大的整數在2的前面,而且這些整數還沒有被插進來,因此必須給這些數留出 個空位置,于是,把2放在第 +1的空位置上。 • • • K:(一般的一步)由于在排列中要有 個整數在k的前面,而且這些整數還沒有被插進來,因此必須給這些數留出 個空位置。在本步驟開始時空位置的個數是n-(k-1)=n-k+1。我們把k放在從左邊數的第( +1)的空位置上。既然 ≤n-k,因此就有 +1≤n-k+1,從而這樣一個空位置就被確定下來。 • • • N:把n放在剩下的一個空位置上
標簽:
上傳時間: 2013-12-15
上傳用戶:獨孤求源
約瑟夫環 已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重復下去,直到圓桌周圍的人全部出列。(有詳細注解)數據結構學習的好例子
標簽:
上傳時間: 2016-10-12
上傳用戶:wxhwjf
已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重復下去,直到圓桌周圍的人全部出列。
標簽:
上傳時間: 2016-11-03
上傳用戶:朗朗乾坤
c語言的k均值聚類算法。給定類的個數K,將N個對象分到K個類中去,使得類內對象之間的相似性最大,而類之間的相似性最小的算法。
上傳時間: 2014-01-20
上傳用戶:woshiayin
N位同學站成一排,音樂老師要請其中的(N-K)位同學出列,使得剩下的K位同學排成合唱隊形。 合唱隊形是指這樣的一種隊形:設K位同學從左到右依次編號為1,2…,K,他們的身高分別為T1,T2,…,TK, 則他們的身高滿足T1 < T2 < ...< Ti > Ti+1 > … > TK (1 <= i <= K)。 你的任務是,已知所有N位同學的身高,計算最少需要幾位同學出列,可以使得剩下的同學排成合唱隊形。 Input 輸入包含若干個測試用例。 對于每個測試用例,輸入第一行是一個整數N(2<=N<=100),表示同學的總數。第二行有N個整數,用空格分隔,第i個整數Ti(130<=Ti<=230)是第i位同學的身高(厘米)。當輸入同學總數N為0時表示輸入結束。 Output 對于每個測試案例,輸出包括一行,這一行只包含一個整數,就是最少需要幾位同學出列。 Sample Input 8 186 186 150 200 160 130 197 220 3 150 130 140 0 Sample Output 4 1
標簽:
上傳時間: 2016-12-06
上傳用戶:jackgao
溫度華氏轉變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級!!\n") else if (a>=80) printf("73分=B等級!!\n") else if (a>=70) printf("73分=C等級!!\n") else if (a>=60) printf("73分=D等級!!\n") else if (a<60) printf("73分=E等級!!\n") } { if (b>=90) printf("b=A等級!!\n") else if (b>=80) printf("85分=B等級!!\n") else if (b>=70) printf("85分=C等級!!\n") else if (b>=60) printf("85分=D等級!!\n") else if (b<60) printf("85分=E等級!!\n") } { if (c>=90) printf("c=A等級!!\n") else if (c>=80) printf("66分=B等級!!\n") else if (c>=70) printf("66分=C等級!!\n") else if (c>=60) printf("66分=D等級!!\n") else if (c<60) printf("66分=E等級!!\n") } system("pause") return 0 }
上傳時間: 2014-11-10
上傳用戶:wpwpwlxwlx
溫度華氏轉變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級!!\n") else if (a>=80) printf("73分=B等級!!\n") else if (a>=70) printf("73分=C等級!!\n") else if (a>=60) printf("73分=D等級!!\n") else if (a<60) printf("73分=E等級!!\n") } { if (b>=90) printf("b=A等級!!\n") else if (b>=80) printf("85分=B等級!!\n") else if (b>=70) printf("85分=C等級!!\n") else if (b>=60) printf("85分=D等級!!\n") else if (b<60) printf("85分=E等級!!\n") } { if (c>=90) printf("c=A等級!!\n") else if (c>=80) printf("66分=B等級!!\n") else if (c>=70) printf("66分=C等級!!\n") else if (c>=60) printf("66分=D等級!!\n") else if (c<60) printf("66分=E等級!!\n") } system("pause") return 0 }
上傳時間: 2013-12-12
上傳用戶:亞亞娟娟123
指定一個數字轉換回十進位,八進位,十六進位#include <stdio.h> #include <stdlib.h> int main(void) { int number =89 printf("數字 %d\n",number) /* %d 為十進位輸出格式*/ printf("八進位為 %o\n",number) /* %o 為八進位輸出格式*/ printf("十六進位為%x\n",number) /* %x 為十六進位輸出格式*/ system("pause") return 0 }
上傳時間: 2013-11-29
上傳用戶:tyler
是一個數學的應用問題: 已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重復下去,直到圓桌周圍的人全部出列。
標簽:
上傳時間: 2016-12-20
上傳用戶:trepb001
// 入口參數: // l: l = 0, 傅立葉變換 l = 1, 逆傅立葉變換 // il: il = 0,不計算傅立葉變換或逆變換模和幅角;il = 1,計算模和幅角 // n: 輸入的點數,為偶數,一般為32,64,128,...,1024等 // k: 滿足n=2^k(k>0),實質上k是n個采樣數據可以分解為偶次冪和奇次冪的次數 // pr[]: l=0時,存放N點采樣數據的實部 // l=1時, 存放傅立葉變換的N個實部 // pi[]: l=0時,存放N點采樣數據的虛部 // l=1時, 存放傅立葉變換的N個虛部 // // 出口參數: // fr[]: l=0, 返回傅立葉變換的實部 // l=1, 返回逆傅立葉變換的實部 // fi[]: l=0, 返回傅立葉變換的虛部 // l=1, 返回逆傅立葉變換的虛部 // pr[]: il = 1,i = 0 時,返回傅立葉變換的模 // il = 1,i = 1 時,返回逆傅立葉變換的模 // pi[]: il = 1,i = 0 時,返回傅立葉變換的輻角 // il = 1,i = 1 時,返回逆傅立葉變換的輻角
上傳時間: 2017-01-03
上傳用戶:ynsnjs