原创 java對象創建過程

1、對象創建的整個流程: step1: 當虛擬機遇到一個new指令時,首先去檢查這個指令的參數是否能在常量池中定位到一個類的符號引用,並檢查這個符號引用代表的類是否被加載、解析和初始化過。如果沒有,那麼必須先執行相應的類加載過程。

原创 單鏈表反轉

關於鏈表反轉是招聘筆試中經常考的題,而且經常是讓直接寫在紙上,感覺在紙上寫程序比使用IDE寫難好多,主要還是自己不太熟練,所以整理了一下鏈表的反轉的方法。 關於鏈表反轉個人想到了三種方法,使用java實現,後續看到新方法會補充…

原创 大數問題-打印1到最大的n位數

問題描述 輸入數字n,按順序打印出從0到最大的n位十進制數。比如輸入4,則需要輸出0,,1,2,3,···, 9999 思路 需要注意兩點: 直接使用int或long類型,當n比較大時會溢出 如何快速的判斷出到達了最大的n位數

原创 數據結構

線性表 1. 順序存儲結構 define MAXSIZE 20 typedef int ElemType; typedef struct { ElemType data[MAXSIZE]; int length;

原创 排序

排序算法主要有 冒泡排序(時間複雜度爲O(n^2)) 選擇排序(時間複雜度爲O(n^2),單比冒泡排序稍微好點,主要是交換次數少) 直接插入排序(時間複雜度爲O(n^2),比選擇排序稍微好點) (以上都是O(n^2)的排序,下

原创 排列組合(一)全排列

問題描述 輸出一個字符數組元素的全排列 如 輸入:'a','b','c' 結果:a,b,c b,a,c c,b,a a,c,b b,c,a c,a,b 6 解決思路

原创 查找 二(二叉排序樹、平衡二叉樹、)

1、二叉排序樹 二叉排序樹又稱爲二叉查找樹。是一個具有下列屬性的二叉樹: 若左子樹不爲空,則左子樹上所有節點值均小於它的根節點的值 若右子樹不爲空,則右子樹上所有節點的值均大於它的根節點的值 當對樹進行中序遍歷時,我們就會得

原创 VS快捷鍵的設置使用

VS 快捷鍵設置 的位置: 工具->選項->鍵盤(環境) 代碼自動提示補全,在eclipse叫做Content Assist 在這裏,叫做Edit.CompleteWord 默認的代碼自動補全是Alt+右方向鍵

原创 數組工具

Arrays是一個數組的工具類 提供如下方法 Arrays.binarySearch(int[]); // 二分查找數組必須有序 Arrays.sort(int[]); // 數組排序,如果數組元素時對象,則必須實現Compar

原创 查找(一)

1、查找的簡介 查找分爲:靜態查找和動態查找 靜態查找:只做查找操作 動態查找:在查找的過程中同事2插入查找表中不存在的數據元素,或者刪除存在的元素 查找的算法: 順序查找(加入哨兵優化) 折半查找,插值查找,斐波那契

原创 RANSAC

RANSAC算法的輸入是一組觀測數據,一個用於解釋觀測數據的參數化模型以及一些可信的參數。 主要思想是: 通過在數據集中隨機選定幾個數據用來確定一個模型; 觀察剩餘點,哪些點在可接受誤差範圍符合這個模型,符合模型的稱爲內點,不

原创 opencv中三角剖分

三角剖分簡介 主要介紹Delaunay三角剖分 在opencv源碼sources/samples下c++/c目錄下都有三角剖分的示例代碼delaunay 1. 最大化最小角,“最接近於規則化的“的三角網。 2. 唯一性(任意

原创 查找三 多路查找樹(2-3樹,2-3-4樹,B樹、B+樹)

應用場景:解決在硬盤中的大量數據中的查找。因爲大量數據存儲在硬盤中,不能一次全部加載到內存中,而每次查一個數據讀一次硬盤,讀取速度太慢,這時就需要使用一種數據結構一部分一部分讀入,這就是多路查找樹的作用。 2-3樹 2結點:每個幾

原创 設計模式(一)-策略模式

策略模式:定義了算法族,分別封裝起來,讓他們之間可以互相替換,此模式讓算法的變化獨立於使用算法的客戶。 代碼示例 每種類型的鴨子具有不同屬性行爲,我們把每種類型行爲定義爲接口,然後每種行爲具體的類型就是實現這些接口的具體類。

原创 java集合總結

關於java集合可以分爲兩類 單列集合(根接口Collection ) 雙列集合(分根接口Map) 1、單列集合 | Collection 單列集合的根接口 —-| List 實現了List接口的集合類,具備的特點: