Time of Update: 2017-02-27
在並發空間中,諸如協調、非同步行為、響應性和延展性等問題會成為關注的焦點。這些都是開發人員在設計應用程式時必須考慮的一些比較深奧的主題。但是,也許是由於缺乏經驗或缺乏合適的效能工具,一些同樣重要的主題卻常常被忽略。高效能演算法就是其中一例。在企業層級,開發人員會仔細斟酌Distributed File
Time of Update: 2017-02-27
目錄延遲自動啟動服務改進關機可預見性失敗操作和受控停止減少許可權保護服務資料用受限令牌保護其他項目接收服務通知後續內容Windows®服務開發的狀態自從在 Windows NT® 中出現服務以來一直沒有較大的改變,但是 Windows Vista® 和 Windows Server® 2008 打破了這一僵局。這其中的許多功能主要是為了以更簡捷的方式產生更安全的服務,但是在與安全性不相關的服務功能中,有些功能是為了提高 Windows
Time of Update: 2017-02-27
目錄任務對話方塊Aero 精靈新的檔案對話方塊有待探索的其他 WTL 功能負責 Windows® Template Library (WTL) 的開發人員最近發布了最新版本,這個模板庫非常優秀,完全支援隨 Windows Vista® 引入的幾乎所有新使用者介面功能和增強功能。本月,我將重點介紹此最新版本中的一些新功能。如果您尚不熟悉 WTL 以及它與 Visual C++® 開發領域之間的適應情況,我在開頭將簡單地加以介紹。為了能夠輕鬆建立 COM
Time of Update: 2017-02-27
目錄入門解碼映像編碼映像WIC 映像工廠使用流通過 WPF 使用 WIC下一步是什嗎?Microsoft® Windows® Imaging Component (WIC) 是用於編碼、解碼和操控映像的可擴充架構。WIC 最初是為 Windows Vista® 和 Windows Presentation Foundation (WPF) 而設計的,但現在,不僅 Windows Vista 和 Microsoft .NET Framework 3.0
Time of Update: 2017-02-27
本文配套源碼討論 ISO-C++ 文字查詢語言 (TQL) 應用程式到 Microsoft® .NET Framework 和 C++/CLI 的轉換。特別是,我將深入討論如何將模板和標準模板庫 (STL) 映射到 .NET 泛型工具。儘管在 1991 年,我曾在貝爾實驗室從事過 Cfront 3.0 版的最初模板實現,並曾極力提倡使用這些模板,但我建議不要在 C++/CLI 中使用模板。在 .NET 下,C++ 範本執行個體化的靜態特性使其無法成為 C++/CLI
Time of Update: 2017-02-27
堆排序包含兩個步驟:第一步: 是建立大頂堆(從大到小排序)或小頂堆(從小到大排序), 從下往上建立; 如建堆時, s是從大到小;第二步: 是依次交換堆頂和堆底, 並把交換後的堆底輸出, 只排列剩餘的堆, 從上往下建立; 如構造時, s始終是1;堆排序(Heap Sort)的時間複雜度是O(nlogn), 最壞情況下也是如此.而快速排序(Quick Sort), 若初始記錄序列有序, 快速排序將退化為起泡排序(Bubble Sort),
Time of Update: 2017-02-27
經典的快速排序演算法, 作為一個編程者, 任何時候都要完整的手寫.代碼:/* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h> #include <stdlib.h> int RandomInRange(int min, int max) { int
Time of Update: 2017-02-27
鄰接矩陣無向圖的介紹鄰接矩陣無向圖是指通過鄰接矩陣表示的無向圖。上面的圖G1包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7條邊。由於這是無向圖,所以邊(A,C)和邊(C,A)是同一條邊;這裡列舉邊時,是按照字母先後順序列舉的。上圖右邊的矩陣是G1在記憶體中的鄰接矩陣示意圖。A[i][j]=1表示第i個頂點與第j個頂點是鄰接點,A[i][j]=0則表示它們不
Time of Update: 2017-02-27
鄰接矩陣無向圖的介紹鄰接矩陣無向圖是指通過鄰接矩陣表示的無向圖。上面的圖G1包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7條邊。由於這是無向圖,所以邊(A,C)和邊(C,A)是同一條邊;這裡列舉邊時,是按照字母先後順序列舉的。上圖右邊的矩陣是G1在記憶體中的鄰接矩陣示意圖。A[i][j]=1表示第i個頂點與第j個頂點是鄰接點,A[i][j]=0則表示它們不
Time of Update: 2017-02-27
鄰接表無向圖的介紹鄰接表無向圖是指通過鄰接表表示的無向圖。上面的圖G1包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7條邊。上圖右邊的矩陣是G1在記憶體中的鄰接表示意圖。每一個頂點都包含一條鏈表,該鏈表記錄了"該頂點的鄰接點的序號"。例如,第2個頂點(頂點C)包含的鏈表所包含的節點的資料分別是"0,1,3";而這&qu
Time of Update: 2017-02-27
鄰接表無向圖的介紹鄰接表無向圖是指通過鄰接表表示的無向圖。上面的圖G1包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7條邊。上圖右邊的矩陣是G1在記憶體中的鄰接表示意圖。每一個頂點都包含一條鏈表,該鏈表記錄了"該頂點的鄰接點的序號"。例如,第2個頂點(頂點C)包含的鏈表所包含的節點的資料分別是"0,1,3";而這&qu
Time of Update: 2017-02-27
鄰接矩陣有向圖的介紹鄰接矩陣有向圖是指通過鄰接矩陣表示的有向圖。上面的圖G2包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"<A,B>,<B,C>,<B,E>,<B,F>,<C,E>,<D,C>,<E,B>,<E,D>,<F,G>"共9條邊。
Time of Update: 2017-02-27
鄰接矩陣有向圖的介紹鄰接矩陣有向圖是指通過鄰接矩陣表示的有向圖。上面的圖G2包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"<A,B>,<B,C>,<B,E>,<B,F>,<C,E>,<D,C>,<E,B>,<E,D>,<F,G>"共9條邊。
Time of Update: 2017-02-27
鄰接表有向圖的介紹鄰接表有向圖是指通過鄰接表表示的有向圖。上面的圖G2包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"<A,B>,<B,C>,<B,E>,<B,F>,<C,E>,<D,C>,<E,B>,<E,D>,<F,G>"共9條邊。上圖右邊的矩陣是G2在記憶體中的鄰接表示意圖。每一個頂點都包含一條鏈表,該鏈表記錄了"該頂點所
Time of Update: 2017-02-27
拓撲排序介紹拓撲排序(Topological Order)是指,將一個有向非循環圖(Directed Acyclic
Time of Update: 2017-02-27
拓撲排序介紹拓撲排序(Topological Order)是指,將一個有向非循環圖(Directed Acyclic
Time of Update: 2017-02-27
最小產生樹在含有n個頂點的連通圖中選擇n-1條邊,構成一棵極小連通子圖,並使該連通子圖中n-1條邊上權值之和達到最小,則稱其為連通網的最小產生樹。例如,對於如上圖G4所示的連通網可以有多棵權值總和不相同的產生樹。克魯斯卡爾演算法介紹克魯斯卡爾(Kruskal)演算法,是用來求加權連通圖的最小產生樹的演算法。基本思想:按照權值從小到大的順序選擇n-1條邊,並保證這n-1條邊不構成迴路。具體做法:首先構造一個只含n個頂點的森林,然後依權值從小到大從連通網中選擇邊加入到森林中,並使森林中不產生迴路,直
Time of Update: 2017-02-27
最小產生樹在含有n個頂點的連通圖中選擇n-1條邊,構成一棵極小連通子圖,並使該連通子圖中n-1條邊上權值之和達到最小,則稱其為連通網的最小產生樹。例如,對於如上圖G4所示的連通網可以有多棵權值總和不相同的產生樹。克魯斯卡爾演算法介紹克魯斯卡爾(Kruskal)演算法,是用來求加權連通圖的最小產生樹的演算法。基本思想:按照權值從小到大的順序選擇n-1條邊,並保證這n-1條邊不構成迴路。具體做法:首先構造一個只含n個頂點的森林,然後依權值從小到大從連通網中選擇邊加入到森林中,並使森林中不產生迴路,直
Time of Update: 2017-02-27
題目:輸入一顆二叉搜尋樹, 將該二叉搜尋樹轉換成一個排序的雙向鏈表.要求不能建立任何新的結點, 只能調整數中結點的指標的指向.方法: 使用中序遍曆每一個結點, 並進行串連, 即左子樹指前, 右子樹指後, 並儲存前一個節點.本程式包含演算法原理, 測試程式, 及 輸出.代碼:/* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/
Time of Update: 2017-02-27
演算法邏輯: 根據節點的大小, 建立樹, 輸出樹的根節點, 並把此重設為最大值, 再重構樹.因為樹中保留了一些比較的邏輯, 所以減少了比較次數.也稱錦標賽排序, 時間複雜度為O(nlogn), 因為每個值(共n個)需要進行樹的深度(logn)次比較.參考<資料結構>(嚴蔚敏版) 第278-279頁.樹形選擇排序(tree selection sort)是堆排序的一個過渡, 並不是核心演算法.但是完全按照書上演算法, 實現起來極其麻煩, 幾乎沒有任何人實現過.需要記錄建樹的順序,