Josephus排列問題定義如下:假設n個競賽者排成一個環形。給定一個正整數m,從某個指定的第一個人開始,沿環計數,每遇到第m個人就讓其出列,且計數繼續進行下去。這個過程一直到所有的人都出列為止。最后出列都優勝者。每個人出列的次序定義了整數1,2,...,n的一個排列。這個排列稱為一個(n,m)Josephus排列。例如,(7,3)Josephus排列為3,6,2,7,5,1,4.對于給定的1,2,...n中的k個數,Josephus想知道是否存在一個正整數m(n,m)Josephus排列的最后k個數為事先指定的這k個數。
上傳時間: 2015-09-20
上傳用戶:zycidjl
作品:算法設計課程作業 作者:陳興 學號:J04120010 操作說明: 1、最長公共子序列: 用VC6.0打開文件以后輸入一串數字,按“\”為結束,輸出結果。 2、背包問題 用vc6.0打開文件以后按提示操作。 3、殘缺棋盤問題 用vc6.0打開文件以后按提示操作。 4、(3.1和3.2還有3.3) 這個是課本82頁的作業,基本實現了。其中3.2的算法時間復雜度不是nlogn而是n,nlogn的算法沒做出來!
上傳時間: 2014-01-01
上傳用戶:siguazgb
Embest S3C44B0X Evaluation Board RTC Test Example RTC Check(Y/N)? y Set Default Time at 2004-12-31 FRI 23:59:59 Set Alarm Time at 2005-01-01 00:00:01 ... RTC Alarm Interrupt O.K. ... Current Time is 2005-01-01 SAT 00:00:01 RTC Working now. To set date(Y/N)? y Current date is (2005,01,01, SAT). input new date (yy-mm-dd w): 5-2-23 3 Current date is: 2005-02-23 WED RTC Working now. To set time(Y/N)? y Current time is (00:00:21). To set time(hh:mm:ss): 19:32:5 Current Time is 2005-02-23 WED 19:32:
標簽: Evaluation RTC S3C44B0X Default
上傳時間: 2014-01-03
上傳用戶:baiom
假定已經有許多應用采用了程序1 - 1 5中所定義的C u r r e n c y類,現在我們想要對C u r r e n c y類 的描述進行修改,使其應用頻率最高的兩個函數A d d和I n c r e m e n t可以運行得更快,從而提高應 用程序的執行速度。由于用戶僅能通過p u b l i c部分所提供的接口與C u r r e n c y類進行交互,
上傳時間: 2015-10-11
上傳用戶:BIBI
后綴數組求最長公共子串 這里的最長公共子串是指的連續的子串,并非經典dp的那種。 aabbc abc 這兩個字符串的最長公共子串為ab 算法復雜度是o(n)的(n為兩個字符串長度的和)
上傳時間: 2015-10-24
上傳用戶:電子世界
計數排序是一個非基于比較的線性時間排序算法。它對輸入的數據有附加的限制條件: 1、輸入的線性表的元素屬于有限偏序集S; 2、設輸入的線性表的長度為n,|S|=k(表示集合S中元素的總數目為k),則k=O(n)。 在這兩個條件下,計數排序的復雜性為O(n)。 計數排序算法的基本思想是對于給定的輸入序列中的每一個元素x,確定該序列中值小于x的元素的個數。一旦有了這個信息,就可以將x直接存放到最終的輸出序列的正確位置上。例如,如果輸入序列中只有17個元素的值小于x的值,則x可以直接存放在輸出序列的第18個位置上。 計數排序算法沒有用到元素間的比較,它利用元素的實際值來確定它們在輸出數組中的位置。因此,計數排序算法不是一個基于比較的排序算法,從而它的計算時間下界不再是Ω(nlogn)。另一方面,計數排序算法之所以能取得線性計算時間的上界是因為對元素的取值范圍作了一定限制,即k=O(n)。如果k=n2,n3,..,就得不到線性時間的上界。
上傳時間: 2015-10-30
上傳用戶:chenxichenyue
//給定整數n,產生所有[2n]上的匹配(matching) //將其視為一個所有塊大小均為2的集合分拆 //以a_i表示其第i個元素所在的集合號 //輸出格式為 a1 a2 a3 ... //滿足 //a_{i+1} <= max { a1,a2,...a_i } + 1
標簽: 整數
上傳時間: 2014-01-18
上傳用戶:xieguodong1234
首先,初始化將要排序的序列,以數組初始化。 第二,定義快速排序函數: 本算法思路為:在待排序的n個記錄中任取一個記錄r(通常取第一個記錄),以該記錄的關鍵字k為準,將所有剩下的n-1個記錄分割成兩個子序列。第一個子序列中的每個記錄關鍵子均小于或等于k,第二個子序列中的每個記錄關鍵字均大于或等于k,然后將k對應的記錄排在第一個子序列之后及第二個子序列之前。這個過程為一遍排序。之后分別對子序列1和子序列2重復上述過程,直至每個子序列只有一個記錄為止。 最后,定義main函數,引用之前定義函數完成程序。
標簽:
上傳時間: 2014-01-05
上傳用戶:www240697738
離散01串問題,(n,k)01 串定義為:長度為n 的01 串,其中不含k 個連續的相同子串。對于給定的正整數n 和k,計算(n,k)01 串的個數。
標簽: 離散
上傳時間: 2015-11-14
上傳用戶:sardinescn
2.[問題描述] 編寫遞歸算法,在二叉樹中求位于先序序列中第K個位置的結點 [輸入] 按照先序序列的順序輸入該結點的內容。其輸入abd eh cf i g 。輸入要求的位置 [輸出] 若二叉樹不空,按先序序列輸出,求出所求位置的結點 [存儲結構] 采用二叉表存儲 [算法的基本思想] 采用遞歸方法建立和遍歷二叉樹。首先建立二叉樹的根結點,然后建立其左右子樹,直到空子樹為止,先序遍歷二叉樹時,先遍厲左子樹,后遍厲右子樹,最后訪問根結點并計算出二叉樹中葉子結點的數目和第K個位置的結點 #include<stdio.h> #include<malloc.h> struct node{ char info struct node*llink,*rlink } typedef struct node NODE
上傳時間: 2014-01-13
上傳用戶:zm7516678