計數排序是一個非基于比較的線性時間排序算法。它對輸入的數據有附加的限制條件: 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
約瑟夫環 1. 本演示程序利用一循環鏈表,每個結點為一人,類似將人按順時針方向圍坐一圈,每個結點包括,號碼,密碼.號碼是作為排的順序.密碼用來作為下一次報數的數字.當走到結尾時,再下個結點便循環回去,依此類推. 2. 演示程序以用戶與計算機的對話方式執行,用戶輸入相應的數據,輸出結果顯示在其后。,即總結點數,和密碼. 3. 程序執行的命令包括:1)創建鏈表 2)尋找結點 3)刪除結點 4. 測試數據測試數據:m初始值20,n=7,7個人密碼依次為:3,1,7,2,4,8,4。首先m值為6,正確出列順序為6,1,4,7,2,3,5。
上傳時間: 2014-07-25
上傳用戶:weiwolkt
用鏈表實現的大數階乘,可以計算n萬的階乘,不過3萬以上,時間就很長了。
標簽:
上傳時間: 2015-11-20
上傳用戶:haohaoxuexi
設計一個允許n個進程并發運行的進程管理模擬系統。該系統包括有簡單的進程控制、同步與通訊機構,其進程調度算法可任意選擇。每個進程用一個PCB表示,其內容根據具體情況設置。各進程之間有一定的同步關系(可選)。系統在運行過程中應能顯示或打印各進程的狀態及有關參數的變化情況,以便觀察諸進程的運行過程及系統的管理過程。
上傳時間: 2015-11-21
上傳用戶:515414293
1.計算n至少多大時,以下不等式成立。 1+1/2+1/3+……+1/n>10 2.請分別用break和continue語句判斷1-1000以內的素數個數。 3.編寫一個程序找出100~1000之間的所有姐妹素數。(注: 姐妹素數是指相鄰兩個奇數均為素數。)
標簽: 計算
上傳時間: 2014-06-23
上傳用戶:z1191176801
快速瞭解ECLIPSE 目錄 序言· 一.Eclipse 簡介 二.Eclipse 組織 三.Eclipse 相關術語 四.Eclipse 平臺 五.EMF & GEF 介紹 六.關於Eclipse、SWT 和JFace 一個SWT 應用程式的基礎材料 基本控制項 標籤 文件 按鈕 事件監聽器 複合控制項 Shell 佈局管理器 FillLayout GridLayout GridData 15 建立一個執行程式 為什麼使用SWT 七.OSGI 簡介 Eclipse 資源 附錄1 SWT 的內幕? 附錄2 相關網站 附錄3 外掛開發
上傳時間: 2015-11-30
上傳用戶:cc1
圖論中最小生成樹Kruskal算法 及畫圖程序 M-函數 格式 [Wt,Pp]=mintreek(n,W):n為圖頂點數,W為圖的帶權鄰接矩陣,不構成邊的兩頂點之間的權用inf表示。顯示最小生成樹的邊及頂點, Wt為最小生成樹的權,Pp(:,1:2)為最小生成樹邊的兩頂點,Pp(:,3)為最小生成樹的邊權,Pp(:,4)為最小生成樹邊的序號 附圖,紅色連線為最小生成樹的圖 例如 n=6 w=inf*ones(6) w(1,[2,3,4])=[6,1,5] w(2,[3,5])=[5,3] w(3,[4,5,6])=[5,6,4] w(4,6)=2 w(5,6)=6 [a,b]=mintreek(n,w)
上傳時間: 2015-11-30
上傳用戶:dreamboy36
利用Rijndael算法進行任意文件的加密。把任意一個文件分成N個16字節組,最后一組若不足16字節可以用空格去補!
上傳時間: 2015-12-02
上傳用戶:xiaoyunyun
這是一個ACM中的題請大家看以下哈 如果有問題請多多指教 n個猴子圍坐一圈并按照順時針方向從1到n編號,從第s個猴子開始進行1到m的報數,報數到第m的猴子 退出報數,從緊挨它的下一個猴子重新開始1到m的報數,如此進行下去知道所有的猴子都退出為止。 求給出這n個猴子的退出的順序表。 Input 有做組測試數據.每一組數據有兩行,第一行輸入n(表示猴子的總數)第二行輸入數據s(從第s 個猴子開 始報數)和數據m(第m個猴子退出報數).當輸入0 0 0時表示程序結束. Output 輸出中,每組數據的輸出結果為一行,中間用逗號間隔。
上傳時間: 2014-01-01
上傳用戶:腳趾頭
本題的算法中涉及的三個函數: double bbp(int n,int k,int l) 其中n為十六進制位第n位,k取值范圍為0到n+7,用來計算16nS1,16nS2,16nS3,16nS4小數部分的每一項。返回每一項的小數部分。 void pi(int m,int n,int p[]) 計算從n位開始的連續m位的十六進制數字。其中p為存儲十六進制數字的數組。 void div(int p[]) void add(int a[],int b[]) 這兩個函數都是為最后把十六進制數字轉換為十進制數字服務的。 最后把1000個數字分別存儲在整型數組r[]中,輸出就是按順序輸出該數組。
上傳時間: 2014-01-05
上傳用戶:xcy122677