原创 一文帶你入門Java的【枚舉類】

一、什麼是枚舉類 枚舉類型用於聲明一組命名的常數,當一個變量只有幾種已知的取值時,可以將它定義爲枚舉類型。 例如: 每星期的星期一到星期日 每月的一月到十二月 四季的春夏秋冬 … 二、自定義枚舉類 創建步驟 聲明對象的屬性

原创 一文帶你入門Java之I/O流

一、IO流的概述 1. 流的類型 操作數據單位:字節流、字符流 數據的流向:輸入流、輸出流 流的角色:節點流、處理流 圖解 以字體顏色劃分類別 2. 體系結構 重點學習藍色框中的內容 3. 輸入、輸出的基本步驟 輸入過程

原创 一文帶你入門Java之【註解】

一、什麼是註解 代碼裏的特殊標記, 這些標記可以在編譯, 類加載, 運行時被讀取, 並執行相應的處理。 在不改變原邏輯的情況下, 在源文件中嵌入一些補充信息。 框架 = 註解 + 反射機制 + 設計模式 二、如何使用註解 @

原创 僅需這一篇文章帶你入門Java多線程

一、程序、進程、線程的關係 程序(program) 是爲完成特定任務、用某種語言編寫的一組指令的集合。即指一段靜態的代碼。 進程(process) 程序的一次執行過程,或是正在運行的一個程序。 進程作爲資源分配的單位,系統在運行

原创 用Java實現【馬踏棋盤算法】

一、介紹 馬踏棋盤算法也被稱爲騎士周遊問題 將馬隨機放在國際象棋的8×8棋盤Board[0~7][0~7]的某個方格中,馬按走棋規則(馬走日字)進行移動。要求每個方格只進入一次,走遍棋盤上全部64個方格 遊戲演示 二、思路分

原创 用Java實現【迪傑斯特拉算法】

一、介紹 迪傑斯特拉(Dijkstra)算法是典型最短路徑算法,用於計算一個結點到其他結點的最短路徑。 它的主要特點是以起始點爲中心向外層層擴展(廣度優先搜索思想),直到擴展到終點爲止。 算法過程:設置出發頂點爲v,頂點集合V{

原创 用Java實現【弗洛伊德(Floyd)算法】

一、介紹 和Dijkstra算法一樣,弗洛伊德(Floyd)算法也是一種用於尋找給定的加權圖中頂點間最短路徑的算法。該算法名稱以創始人之一、1978年圖靈獎獲得者、斯坦福大學計算機科學系教授羅伯特·弗洛伊德命名 弗洛伊德算法(F

原创 用Java【普利姆算法】解決修路問題

一、介紹 普利姆(Prim)算法求最小生成樹,也就是在包含n個頂點的連通圖中,找出只有(n-1)條邊包含所有n個頂點的連通子圖,也就是所謂的極小連通子圖 普利姆的算法: 設G=(V,E)是連通網,T=(U,D)是最小生成樹,V

原创 用Java實現【克魯斯卡爾算法】圖解分析

一、介紹 Kruskal算法是一種用來查找最小生成樹的算法,由Joseph Kruskal在1956年發表。用來解決同樣問題的還有Prim算法和Boruvka算法等。三種算法都是貪心算法的應用。和Boruvka算法不同的地方是,K

原创 用Java實現【貪心算法】

一、介紹 貪婪算法(貪心算法)是指在對問題進行求解時,在每一步選擇中都採取最好或者最優(即最有利)的選擇,從而希望能夠導致結果是最好或者最優的算法 貪婪算法所得到的結果不一定是最優的結果(有時候會是最優解),但是都是相對近

原创 用Java【KMP算法】解決字符串匹配問題

一、應用場景-字符串匹配 在字符串String basicString = "張三王五李四張三 王五李四 王 五李四 ";中查詢 String searchString = "張三 王";,存在則返回首次出現的位置,否則返回-1

原创 用Java實現【動態規劃算法】

本講解以揹包問題舉例 一、介紹 動態規劃(Dynamic Programming)算法的核心思想是:將大問題劃分爲小問題進行解決,從而一步步獲取最優解的處理算法 動態規劃算法與分治算法類似,其基本思想也是將待求解問題分解成

原创 用Java實現【分治算法】

本文以漢諾塔遊戲爲例 一、介紹 分治法是一種很重要的算法。字面上的解釋是“分而治之”,就是把一個複雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題……直到最後子問題可以簡單的直接求解,原問題的解即子問題的解的

原创 用Java實現【二分查找算法(非遞歸)】

可先了解二分查找(遞歸版) 一、介紹 二分查找也稱折半查找(Binary Search),它是一種效率較高的查找方法。但是,折半查找要求線性表必須採用順序存儲結構,而且表中元素按關鍵字有序排列。 二分查找法只適用於從有序的數列中

原创 用Java數組【鄰接矩陣】實現【圖】的入門

本文完整代碼下載 一、基本介紹 1.爲什麼要有圖 線性表侷限於一個直接前驅和一個直接後繼的關係 樹也只能有一個直接前驅也就是父節點 當我們需要表示多對多的關係時, 這裏我們就用到了圖 2.基本術語 圖是一種數據結構,其中結點