原创 Ubuntu下Mysql的安裝,C連接全過程

安裝mysql我選擇的是最簡便的方式:只需要以下三步 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client 3.  sudo apt-get instal

原创 面試軟件開發必會的排序算法

面試軟件開發崗經常會被要求現場寫一種排序算法,以下是我總結的幾種常用排序算法。 1.冒泡法:這裏使用的是改進後的冒泡排序(即加入是否發生交換的標記),冒泡排序算法思想是從最後一個元素開始,依次和它相鄰的元素進行比較,如果後一個元素比前一個

原创 KMP算法,講解非常詳細

KMP算法                                                              KMP算法         在介紹KMP算法之前,先介紹一下BF算法。 一.BF算法     B

原创 圖文並茂講述KMP算法的原理

字符串匹配的KMP算法 作者: 阮一峯 日期: 2013年5月 1日 字符串匹配是計算機的基本任務之一。 舉例來說,有一個字符串"BBC ABCDAB ABCDABCDABDE",我想知道,

原创 二叉樹層遍歷

二叉樹的層遍歷又可以成爲廣度優先遍歷,廣度優先通常都可以利用隊列來解決:首先把根節點加入隊列,然後判斷隊列是否爲空,若非空就把隊頭元素作爲當前節點,然後依次判斷當前節點的左右子節點是否爲空,若非空則加入隊列;循環上述過程,直到隊列爲空。代

原创 單鏈表插入排序

單鏈表插入排序算法基本思想是構建一個新的有序鏈表頭結點,並將原來的鏈表節點依次插入到新建的有序鏈表中。代碼如下: #include "stdafx.h" #include <iostream> using namespace std;

原创 動態規劃算法求最長迴文子串

迴文串就是正着讀和反着讀一樣的字符串,如“abba”,"abcba",最長迴文子串是字符串的子串中最長的屬於迴文串的子串。如字符串"abbaabccba"的最長迴文子串爲"abccba",本文采用動態規劃算法來查找最長迴文子串,算法時間複

原创 數據庫三範式講解

數據庫三範式詳解 0.參考文獻: http://jacki6.iteye.com/blog/774866 http://baike.baidu.com/view/402020.htm 1.範式說明 1.1 第一範式(1N

原创 二叉樹後序遍歷遞歸+非遞歸

二叉樹後序遍歷順序是左、根、右,遞歸方法和先序中序唯一的區別是訪問函數的位置不同;非遞歸方式也是利用棧實現,主要算法思想是設置一個last指針記錄最近一次訪問的節點,初始值爲NULL,從根節點開始如果當前節點非空就入棧,並將左子節點作爲當

原创 二叉樹先序遍歷遞歸+非遞歸

二叉樹先序遍歷的訪問順序是根、左、右,用遞歸可以很方便地寫出先序遍歷程序,但是有時面試官也會讓我們以非遞歸的方式來實現。這裏採用棧來實現非遞歸先序遍歷。程序如下: 1.先序遍歷遞歸方法 #include "stdafx.h" #inclu

原创 單鏈表的歸併排序

由於單鏈表沒有指向前一個節點的指針,而歸併排序排序不需要對前一個節點進行操作,所以歸併排序算法很適合用來對單鏈表排序,代碼如下: #include "stdafx.h" #include <iostream> using namespa

原创 二叉樹中序遍歷遞歸+非遞歸

二叉樹中序遍歷的順序是左、根、右,遞歸算法的寫法和先序遍歷,後序遍歷的唯一區別就是訪問節點的函數放置的位置不同。非遞歸還是利用棧來實現,算法思想是從根節點開始,如果當前節點非空則壓入棧中,然後將當前節點的左子節點作爲當前節點;如果當前節點

原创 deepin系統android studio安裝阿里規約插件中文亂碼解決辦法

下載微軟雅黑ttf文件 https://download.csdn.net/download/shineboyxxb/11389719 使用deepin自帶的深度字體安裝器安裝下載的字體 重啓androidstudio

原创 C++設計模式之模板方法模式

模板方法模式在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟。這個模式主要用來創建一個算法的模板(即模板方法),模板中包括了實現這個算法的幾個固定步驟,這些步

原创 C++string類的實現

string類包含了不少C++基礎點:操作符重載,友元函數,深拷貝,拷貝賦值...,因此成爲面試中手寫代碼的熱點。以下是我總結的C++string類的實現: <pre name="code" class="cpp">#include "s