后綴數組求最長公共子串 這里的最長公共子串是指的連續的子串,并非經典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個關鍵字去整數的記錄進行整序, 以使所有關鍵字為非負數的記錄排在關鍵字為負數的記錄之前,要求使用最少的附加空間,且算法的時間復雜度為O(N) [輸入] 待排序記錄個數,各關鍵字的值。 [輸出] 關鍵字從正負分開,正數在前 [存儲結構] 待排序記錄順序存儲。 [算法的基本思想] 快速排序算法每次任取一個記錄的關鍵字為標準,將其余記錄分為兩組將,N個關鍵字去整數的記錄進行整序, 以使所有關鍵字為非負數的記錄排在關鍵字為負數的記錄之前。 #include <iostream> using namespace std #define MAXNUM 100//設文件的最長可能長度 void sort(int* keys, const int len)//排序
上傳時間: 2014-01-13
上傳用戶:aig85
本書提供用J B u i l d e r開發數據庫應用程序、創建分布式應用程序以及編寫J a v a B e a n 組件的高級資料。它包括下列幾個部分: • 第一部分是“開發數據庫應用程序”,它提供關于使用J b u i l d e r的D a t a E x p r e s s數據 庫體系結構的信息,并解釋原始數據組件和類之間的相互關系,以及怎樣使用它 們來創建你的數據庫應用程序。它還解釋怎樣使用Data Modeler(數據模型器)和 Application Generator(應用程序生成器)創建數據驅動的客戶機/服務器應用程 序。 • 第二部分是“開發分布式應用程序”,它提供關于使用ORB Explorer、用J B u i l d e r 創建多級的分布應用程序、調試分布式應用程序、用J a v a定義C O R B A接口以及 使用s e r v l e t等的信息。 • 第三部分是“創建J a v a B e a n”,它解釋怎樣開發新的J a v a B e a n組件,描述在組件 開發中涉及的任務, 怎樣使用B e a n s E x p r e s s創建新的J a v a B e a n,以及關于屬性、 事件、B e a nIn f o類和其他方面的詳細情況。
上傳時間: 2014-01-03
上傳用戶:wpt
實現最優二叉樹的構造;在此基礎上完成哈夫曼編碼器與譯碼器。 假設報文中只會出現如下表所示的字符: 字符 A B C D E F G H I J K L M N 頻度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 57 字符 O P Q R S T U V W X Y Z , . 頻度 63 15 1 48 51 80 23 8 18 1 16 1 6 2 要求完成的系統應具備如下的功能: 1.初始化。從終端(文件)讀入字符集的數據信息,。建立哈夫曼樹。 2.編碼:利用已建好的哈夫曼樹對明文文件進行編碼,并存入目標文件(哈夫曼碼文件)。 3.譯碼:利用已建好的哈夫曼樹對目標文件(哈夫曼碼文件)進行編碼,并存入指定的明文文件。 4.輸出哈夫曼編碼文件:輸出每一個字符的哈夫曼編碼。
上傳時間: 2014-11-23
上傳用戶:shanml
最大間隙問題:給定n 個實數x , x , , xn 1 2 ,求這n 個數在實軸上相鄰2 個數之間的最 大差值。假設對任何實數的下取整函數耗時O(1),設計解最大間隙問題的線性時間算法。
上傳時間: 2013-12-25
上傳用戶:123456wh
算法實現題1-2 連續和問題 « 問題描述: 給定一個正整數n,計算有多少個不同的連續自然數段,其和恰為n。例如,當n=27 時,有4 個不同的連續自然數段的和恰為27:2+3+4+5+6+7;8+9+10;13+14;27。 « 編程任務: 給定一個正整數n,試設計一個O(n)時間算法,計算有多少個不同的連續自然數段的 和恰為n。 « 數據輸入: 由文件input.txt提供輸入數據。文件的第1 行是正整數n。 « 結果輸出: 程序運行結束時,將計算出的和恰為n的連續自然數段的個數輸出到output.txt中。 輸入文件示例 輸出文件示例 input.txt 27 output.txt 4
上傳時間: 2016-05-28
上傳用戶:yulg
Ex3-23 親兄弟問題 « 問題描述: 給定n 個整數0 1 1 , , , n- a a a 組成的序列。序列中元素i a 的親兄弟元素k a 定義為: min{ | } k i j n j j i a = a a ³ a < < 。 親兄弟問題要求給定序列中每個元素的親兄弟元素的位置。元素i a 的親兄弟元素為k a 時,稱k 為元素i a 的親兄弟元素的位置。當元素i a 沒有親兄弟元素時,約定其親兄弟元素 的位置為-1。 例如,當n=10,整數序列為6,1,4,3,6,2,4,7,3,5 時,相應的親兄弟元素位 置序列為:4,2,4,4,7,6,7,-1,9,-1。 « 編程任務: 對于給定的n個整數0 1 1 , , , n- a a a 組成的序列,試用抽象數據類型棧,設計一個O(n) 時間算法,計算相應的親兄弟元素位置序列。 « 數據輸入: 由文件input.txt提供輸入數據。文件的第1 行有1 個正整數n,表示給定給n個整數。 第2 行是0 1 1 , , , n- a a a 。 « 結果輸出: 程序運行結束時,將計算出的與給定序列相應的親兄弟元素位置序列輸出到output.txt 中。 輸入文件示例 輸出文件示例 input.txt 10 4 2 4 4 7 6 7 -1 9 -1 output.txt 6 1 4 3 6 2 4 7 3 5
上傳時間: 2013-12-17
上傳用戶:shizhanincc
Ex8-4 匯點問題 « 問題描述: 采用鄰接矩陣表示一個具有n 個頂點的圖時,大多數關于圖的算法時間復雜性為 O(n2 ),但也有例外。例如,即使采用鄰接矩陣表示一個有向圖G,確定G 是否含有一個 匯(即入度為n-1,出度為0 的頂點),只需要O(n)計算時間。試寫出其算法。 « 編程任務: 對于給定的有n個頂點的圖G 的鄰接矩陣,各頂點依次編號為1,2,…,n。試設計一 個O(n)時間算法,計算圖G 的匯點。 « 數據輸入: 由文件input.txt提供輸入數據。文件的第1 行有1 個正整數n,表示圖G 中頂點個數。 第2 行起每行n個數,共n行,給出圖G 的鄰接矩陣。 « 結果輸出: 程序運行結束時,將計算出的匯點編號輸出到output.txt中。當圖G 沒有匯點時輸出0。 輸入文件示例 輸出文件示例 input.txt 5 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 0 output.txt 3
上傳時間: 2013-12-25
上傳用戶:yyyyyyyyyy
算法實現題1-5 最大間隙問題 « 問題描述: 最大間隙問題:給定n 個實數x , , xn 1 2 ,求這n 個數在實軸上相鄰2 個數之間的最 大差值。假設對任何實數的下取整函數耗時O(1),設計解最大間隙問題的線性時間算法。 « 編程任務: 對于給定的n 個實數n x , x , , x 1 2 ,編程計算它們的最大間隙。 « 數據輸入: 輸入數據由文件名為input.txt的文本文件提供。文件的第1 行有1 個正整數n。接下來 的1 行中有n個實數n x , x , , x 1 2 。 « 結果輸出: 程序運行結束時,將找到的最大間隙輸出到文件output.txt中。 輸入文件示例 輸出文件示例 input.txt 5 2.3 3.1 7.5 1.5 6.3 output.txt 3.2
上傳時間: 2016-05-28
上傳用戶:咔樂塢