Time of Update: 2018-12-04
過了很長時間了,怕自己忘了,重寫一下快排和二分。 void fastSort(int * arr,int n,int m){int tmp; if(m-n<1) return;//退出遞迴的條件 int partition=arr[m];//分割元素 int i=n-1;//double pointer //int j=n; for(int j=n;j<=m-1;++j) { if(arr[j]<partition) { i++; tmp=arr[j]
Time of Update: 2018-12-04
隊列的順序儲存結構——迴圈隊列迴圈隊列的長度為(rear-front+QueueSize)%QueueSize隊空的條件: front=rear隊滿的條件是: (rear+1)%QueueSize=front 圖片詳解: CirQueue.h //CirQueue.h#ifndef CIRQUEUE_H#define CIRQUEUE_Hconst int QueueSize=100; //定義儲存隊列元素的數組的最大長度template <class T> //
Time of Update: 2018-12-04
文章目錄
Time of Update: 2018-12-04
微軟亞洲技術中心的面試題!!!1.進程和線程的差別。線程是指進程內的一個執行單元,也是進程內的可調度實體.與進程的區別:(1)調度:線程作為調度和分配的基本單位,進程作為擁有資源的基本單位(2)並發性:不僅進程之間可以並發執行,同一個進程的多個線程之間也可並發執行(3)擁有資源:進程是擁有資源的一個獨立單位,線程不擁有系統資源,但可以訪問隸屬於進程的資源.
Time of Update: 2018-12-04
返回指標的函數每個函數可返回一個值,傳回值可以是char、int、float、double等類型,當將傳回值類型設定為void時,表示函數沒有傳回值。在C語言中,還允許一個函數的傳回值是一個指標(即地址),這種返回指標的函數稱為指標型函數。定義指標型函數的形式如下:類型說明符 *函數名(形參表) { … /*函數體*/ }
Time of Update: 2018-12-04
尋找一個數組裡的最大值和最小值法一: 分別遍曆一遍,次數O(2*N);法二: 根據書上的講述, 法三: 主要在法二的基礎上改進,法二改變了原數組,法三主要是不改變原數組,定義兩個變數MAX和MIN,分別儲存最大值和最小值。法四: 分治法,這是重點。[cpp] view
Time of Update: 2018-12-04
鏈表的建立 刪除 插入 #include<iostream>using namespace std;template<typename T>class link{ public:link(T d,link* L){ Data=d; next=L;}link* NEXT()const{return next;}T ReadData()const{return Data;}//link* createLink();//void insertNode(link*
Time of Update: 2018-12-04
給出如下遞推式: 以上就是經典的Fibonacci數列,下面給出遞推的解法: [cpp] view plaincopyprint?int Fibonacci(int n) { if(n<=0) return 0; else if(n==1) return 1; else return Fibonacci(n-1)+Fibonacci(n-2); } 我們知道 ,以上的解法每個F(n)
Time of Update: 2018-12-04
轉載地址:http://blog.endlesscode.com/2010/03/27/select-poll-epoll-intro/by Stephen posted
Time of Update: 2018-12-04
有很多個無序數,我們姑且假定他們各不相等,怎麼挑選出其中最大的若干個數呢? 如果這個資料量很大,比如1億個,如果所存資料是浮點型呢?我們該怎麼處理呢?分兩部分,第一部分是我個人的解答,第二部分是書上的解答;第一部分:
Time of Update: 2018-12-04
x86是一個intel通用電腦系列的編號,也標識一套通用的電腦指令集合。 早期intel的CPU編號都是如8086,80286,由於這整個系列的CPU都是指令相容的,所以都用X86來標識所使用的指令集合。 如今的奔騰,P2,P4,賽揚系列都是支援X86指令系統的,所以都屬於X86家族。 x86 family 6 model 65意思是這個CPU屬於x86家族的第6代產品,採用65ns的工藝製造。 AT/AT COMPATIBLE 這個的意思應該是說相容AT/AT指令。
Time of Update: 2018-12-04
一個有N個整數元素的一位元組(A[0],A[1],A[2],...,A[n-1]),這個數組當然有很多子數組,那麼子數組之和的最大值是什嗎?比如 -2 5 3 -6 4 -8 6 的最大子數組是 5 3。 法一: 挨個遍曆尋找:int maximum=-INF;int sum;for(int i=0;i<n;i++){ sum=0; for(int j=i;j<n;j++) {
Time of Update: 2018-12-04
仿射變換是二維平面中一種重要的變換,在映像圖形領域有廣泛的應用。許多人對“仿射”沒有一個感官的認識,我覺得很有必要先來說一下“仿射”。所謂的“仿射變換”就是一種簡單的變換,它的變化包括旋轉、平移、伸縮,原來的直線仿射變換後還是直線,原來的平行線經過仿射變換之後還是平行線,這就是仿射。仿射變換的矩陣是其次座標形式的變換矩陣這個矩陣包含的變換有旋轉和平移,其實是兩個矩陣的混合體,許多文章都對這個做了很詳細的描述。仿射變換的數學公式裡,是如何做到座標點位置的平移呢?清楚這個才是弄明白仿射變換的關鍵。這
Time of Update: 2018-12-04
在很多書上都看到這個演算法問題:給定一個十進位正整數N, 寫下從1開始,到N的所有整數,然後數一下其中出現所有“1”的個數,即求f(N)。例如:N=2, 寫下1,2,。 出現1個1;N=13, 我們寫下:1,2,3,4,5,6,7,8,9,10,11,12,13,出現1個的個數是6.求解f(N)=N 的最大值?問題分解:1. 首先求解函數f(N),即飯後1 到N之間出現的 1 的個數,如f(13)=62 在求滿足條件的 f(N)=N
Time of Update: 2018-12-04
實現程式,輸入一個N*N的矩陣,對角線輸出每個元素,大概意思如下: 比如輸入4*4的矩陣:{{0, 1, 2, 3},{4, 5, 6, 7},{8, 9,10,11},{12,13,14,15}}輸出為 :0,1,4,2,5,8,3,6,9,12 …[cpp] view plaincopyvoid main() { const int N = 4; int a[N][N] = {{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,1
Time of Update: 2018-12-04
樹之二叉樹 圖解: 以下是代碼實現: bitree.h //聲明類BiTree及定義結構BiNode,檔案名稱為bitree.h#ifndef BITREE_H#define BITREE_Htemplate <class T>struct BiNode //二叉樹的結點結構{ T data; BiNode<T> *lchild, *rchild;};template <class T>class BiTree{public:
Time of Update: 2018-12-04
許多程式會大量使用字串。對於不同的字串,我們希望能夠有辦法判斷其相似程度。我們定義了一套操作方法來把兩個不同的字串變得相同,具體的操作方法為: 1.修改一個字元(如把"a“替換為"b"); 2.增加一個字元(如把"abdd"變為"aebdd"); 3.刪除一個字元(如把"travelling"變為"traveling")。比如,對於“abcdefg“和”abcdef“倆個字串來說,我們認為可以通過增加/減少一個”g“的方式來達到目的。上面的倆種方案,
Time of Update: 2018-12-04
如題,例如:存在數組 1,-1,2,-3,4,-5,6,-7 ,則最長的遞增子序列是:1,2,4,6.法一: 蠻力法 [html] view plaincopyprint?int Lis(int* arr,int n) { int iCount=0;//記錄子序列的個數 int tmp_count=0; int tmp; for(int i=0;i<n-1;i++) { tmp=arr[i]
Time of Update: 2018-12-04
qgen使用 qgen是產生22個查詢語句的產生器,啟動並執行同時需要dbgen queries下的22個sql模板和dbgendists.dss字典檔案。 首先按與dbgen相同的方法組建工程qgen,將得到的dbgenDebugqgen.exe,dbgenqueries下的22個sql查詢範本和dbgendists.dss字典檔案移動到建立的檔案夾to_query中。 然後開啟cmd,cd到to_query目錄,執行指令如下 qgen–d 1 >
Time of Update: 2018-12-04
設計一個演算法,把一個含有N個元素的數組迴圈右移K位,要求時間複雜度為O(N),且只允許使用兩個附件變數。比如abcd1234右移4位後為:1234abcd。法一: 挨個遍曆,每個移動K位,複雜度[cpp] view plaincopyprint?RightShift(int* arr,int N, int K) { while(K--) { int t=arr[N-1];