原创 一個關於圖的面試題(未解)

題目: 給定一個有n個頂點的圖G=(V,E),請設計一個算法計算G中兩兩連接的4個頂點(即四邊形)的數目, 如果沒有,輸出NOT EXIST,說明你所使用的方法以及時間和空間複雜度。

原创 java垃圾收集算法

 1.垃圾收集算法的核心思想   Java語言建立了垃圾收集機制,用以跟蹤正在使用的對象和發現並回收不再使用(引用)的對象。該機制可以有效防範動態內存分配中可能發生的兩個危險:因內存垃圾過多而引發的內存耗盡,以及不恰當的內存釋放所造成的內

原创 微軟的22道數據結構算法面試題(含答案)

  1、反轉一個鏈表。循環算法。               1     List   reverse(List   l)   {       2     if(!l)   return   l;       3        

原创 Java類成員變量的初始化順序

在類被繼承的情況下,初始化的順序: 1.初始化子類,類加載器在加載它的時候會發現它繼承了另外一個類,類加載器要先把父類加載進來。於是開始加載父類,父類的靜態部分被按順序加載。之後子類的靜態部分被加載。這樣的順序是考慮子類的靜態域可能會依賴

原创 十大常用數據結構

一、棧:  1、後綴表達式的求值;  2、中綴到後綴表達式的轉換;  3、深度優先搜索的非遞歸實現;  4、動態規劃的優化:用於維護一個凸序列,便於二分查找,如LIS問題的O(nlgn)算法。  二、隊列:  1、樹的層序遍歷;  2、廣

原创 四道微軟面試算法題

(1)一個整數數列,元素取值可能是0~65535中的任意一個數,相同數值不會重複出現。0是例外,可以反覆出現。請設計一個算法,當你從該數列中隨意選取5個數值,判斷這5個數值是否連續相鄰。注意:- 5個數值允許是亂序的。比如: 8 7 5

原创 trie樹結構

  Trie樹就是字符樹,其核心思想就是空間換時間。 舉個簡單的例子。 給你100000個長度不超過10的單詞。對於每一個單詞,我們要判斷他出沒出現過,如果出現了,第一次出現第幾個位置。 這題當然可以用hash來,但是我要介紹的是trie

原创 判斷單鏈表是否存在環,判斷兩個鏈表是否相交問題詳解

有一個單鏈表,其中可能有一個環,也就是某個節點的next指向的是鏈表中在它之前的節點,這樣在鏈表的尾部形成一環。問題:1、如何判斷一個鏈表是不是這類鏈表?2、如果鏈表爲存在環,如果找到環的入口點?解答:一、判斷鏈表是否存在環,辦法爲:設置

原创 Struts2 原理圖

http://struts.apache.org/2.1.6/docs/big-picture.html

原创 排列組合算法

  全排列  /*      分析:設R= {r1,r2,r3,……,rn}是要進行排列的n個元素,Ri=R-{ri}。集合X中的元素的全排列記爲perm(X).(ri)perm(X)表示在全排列perm(X)的每一個排列前加上前綴ri得

原创 快速排序遞歸和非遞歸算法

int partition(int q[],int low,int high) {int i=low; int j=high+1; int p=i; while(1){ while(q[++i]<q[p]); while(q[--

原创 非標準二分搜索

問題:例如:一個數組a[]={11,12,15,18,20,65,2,5,8,9} 數組特點:局部有序遞增,前一部分總體大於後一部分, 查找一個key的算法: 要求:高效,時間複雜度不是O(n)(具體多少我也不知道,可以是log(n)吧)

原创 求兩數的最小公倍數

/** * 求最大公約數和最小公倍數 */ public class Convention { /** * 求兩數的最大公約數 */ int divisor(int m,int

原创 學習算法的請進.....

向大家推薦一個好的算法站點. 算法源碼吧.. 招聘網站評價

原创 標準C++的類型轉換符

 招聘網站評價 C 風格(C-style)強制轉型如下: (T) exdivssion // cast exdivssion to be of type T 函數風格(Function-style)強制轉型使用這樣的語法: T(exdiv