史上最全的五大算法總結(jié)

分治算法

一酗昼、基本概念

在計算機科學(xué)中杀捻,分治法是一種很重要的算法崔泵。字面上的解釋是“分而治之”,就是把一個復(fù)雜的問題分成兩個或更多的相同或相似的子問題险污,再把子問題分成更小的子問題……直到最后子問題可以簡單的直接求解痹愚,原問題的解即子問題的解的合并。

任何一個可以用計算機求解的問題所需的計算時間都與其規(guī)模有關(guān)蛔糯。問題的規(guī)模越小拯腮,越容易直接求解,解題所需的計算時間也越少渤闷。例如疾瓮,對于n個元素的排序問題,當n=1時飒箭,不需任何計算狼电。n=2時蜒灰,只要作一次比較即可排好序。n=3時只要作3次比較即可肩碟,…强窖。而當n較大時,問題就不那么容易處理了削祈。要想直接解決一個規(guī)模較大的問題翅溺,有時是相當困難的。


二髓抑、基本策略

對于一個規(guī)模為n的問題咙崎,若該問題可以容易地解決(比如說規(guī)模n較小)則直接解決吨拍,否則將其分解為k個規(guī)模較小的子問題褪猛。這些子問題互相獨立且與原問題形式相同,遞歸地解這些子問題羹饰,然后將各子問題的解合并得到原問題的解伊滋,這種算法設(shè)計策略叫做分治法。

如果原問題可分割成k個子問題队秩,1<k≤n,且這些子問題都可解并可利用這些子問題的解求出原問題的解笑旺,那么這種分治法就是可行的。由分治法產(chǎn)生的子問題往往是原問題的較小模式馍资,這就為使用遞歸技術(shù)提供了方便筒主。在這種情況下,反復(fù)應(yīng)用分治手段迷帜,可以使子問題與原問題類型一致而其規(guī)模卻不斷縮小物舒,最終使子問題縮小到很容易直接求出其解色洞,這自然導(dǎo)致遞歸過程的產(chǎn)生戏锹。分治與遞歸像一對孿生兄弟,經(jīng)常同時應(yīng)用在算法設(shè)計之中火诸,并由此產(chǎn)生許多高效算法锦针。


三、適用的情況

(1)該問題的規(guī)闹檬瘢縮小到一定的程度就可以容易地解決奈搜;

(2)該問題可以分解為若干個規(guī)模較小的相同問題,即該問題具有最優(yōu)子結(jié)構(gòu)性質(zhì)盯荤;

(3)利用該問題分解出的子問題的解可以合并為該問題的解馋吗;

(4)該問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的子子問題秋秤。

第一特征是絕大多數(shù)問題都可以滿足的宏粤,因為問題的計算復(fù)雜性一般是隨著問題規(guī)模的增加而增加脚翘。

第二特征是應(yīng)用分治法的前提它也是大多數(shù)問題可以滿足的,此特征反映了遞歸思想的應(yīng)用绍哎。

第三特征是關(guān)鍵来农,能否利用分治法完全取決于問題是否具有第三特征,如果具備了第一和第二特征崇堰,而不具備第三特征沃于,則可以考慮用貪心法或動態(tài)規(guī)劃法。

第四特征涉及到分治法的效率海诲,如果各子問題是不獨立的繁莹,則分治法要做許多不必要的工作,重復(fù)地解公共的子問題特幔,此時雖然可用分治法蒋困,但一般用動態(tài)規(guī)劃法較好。


四敬辣、基本步驟

step1分解:將原問題分解為若干個規(guī)模較小雪标,相互獨立,與原問題形式相同的子問題溉跃;

step2解決:若子問題規(guī)模較小而容易被解決則直接解村刨,否則遞歸地解各個子問題;

step3合并:將各個子問題的解合并為原問題的解撰茎。

它的一般的算法設(shè)計模式如下:

????Divide-and-Conquer(P)

? ? if?|P|≤n0

? ? ?then?return(ADHOC(P))

? ? 將P分解為較小的子問題?P1?,P2?,...,Pk

? ? ?for?i←1?to?k

? ? ?do?yi?←?Divide-and-Conquer(Pi)?△遞歸解決Pi

? ? T?←?MERGE(y1,y2,...,yk)?△合并子問題

? ? ?return(T)

其中|P|表示問題P的規(guī)模嵌牺,n0為一閾值,表示當問題P的規(guī)模不超過n0時龄糊,問題已容易直接解出逆粹,不必再繼續(xù)分解。ADHOC(P)是該分治法中的基本子算法炫惩,用于直接解小規(guī)模的問題P僻弹,因此,當P的規(guī)模不超過n0時直接用算法ADHOC(P)求解他嚷。算法MERGE(y1,y2,...,yk)是該分治法中的合并子算法蹋绽,用于將P的子問題P1?,P2?,...,Pk的相應(yīng)的解y1,y2,...,yk合并為P的解。


五筋蓖、復(fù)雜性分析

一個分治法將規(guī)模為n的問題分成k個規(guī)模為n/m的子問題去解卸耘。設(shè)分解閥值n0=1,且adhoc解規(guī)模為1的問題耗費1個單位時間粘咖,再設(shè)將原問題分解為k個子問題以及用merge將k個子問題的解合并為原問題的解需用f(n)個單位時間蚣抗。用T(n)表示該分治法解規(guī)模為|P|=n的問題所需的計算時間,則有:

T(n)=?k?T(n/m)+f(n)

通過迭代法求得方程的解:

遞歸方程及其解只給出n等于m的方冪時T(n)的值瓮下,但是如果認為T(n)足夠平滑翰铡,那么由n等于m的方冪時T(n)的值可以估計T(n)的增長速度设哗。通常假定T(n)是單調(diào)上升的,從而當mi≤n<mi+1時两蟀,T(mi)≤T(n)<T(mi+1)网梢。


六、依據(jù)分治法設(shè)計程序時的思維過程

實際上就是類似于數(shù)學(xué)歸納法赂毯,找到解決本問題的求解方程公式战虏,然后根據(jù)方程公式設(shè)計遞歸程序。

1党涕、一定是先找到最小問題規(guī)模時的求解方法

2烦感、然后考慮隨著問題規(guī)模增大時的求解方法

3、找到求解的遞歸函數(shù)式后(各種規(guī)奶诺蹋或因子)手趣,設(shè)計遞歸程序即可。



動態(tài)規(guī)劃

一肥荔、基本概念

每次決策依賴于當前狀態(tài)绿渣,又隨即引起狀態(tài)的轉(zhuǎn)移,一個決策序列就是在變化的狀態(tài)中產(chǎn)生出來的燕耿,所以中符,這種多階段最優(yōu)化決策解決問題的過程就稱為動態(tài)規(guī)劃。


二誉帅、基本思想

基本思想:與分治法類似淀散,也是將待求解的問題分解為若干個子問題,按順序求解子問題蚜锨,前一子問題的解档插,為后一子問題的求解提供了有用的信息。在求解任一子問題時亚再,列出各種可能的局部解郭膛,通過決策保留那些有可能達到最優(yōu)的局部解,丟棄其他局部 解针余,依次解決各子問題饲鄙,最后一個子問題就是初始問題的解。

與分治法最大的差別:適合于用動態(tài)規(guī)劃法求解的問題圆雁,經(jīng)分解后得到的子問題往往不是互相獨立的(即下一個子階段的求解是建立在上一個子階段的解的基礎(chǔ)上,進行進一步的求解)帆谍。


三伪朽、適用的情況

(1)最優(yōu)化原理:如果問題的最優(yōu)解所包含的子問題的解也是最優(yōu)的,就稱該問題具有最優(yōu)子結(jié)構(gòu)汛蝙,即滿足最優(yōu)化原理烈涮。

(2)無后效性:即某階段狀態(tài)一旦確定朴肺,就不受這個狀態(tài)以后決策的影響,也就是說坚洽,某狀態(tài)以后的過程不會影響以前的狀態(tài)戈稿,只與當前狀態(tài)有關(guān)。

(3)有重疊子問題:即子問題之間是不獨立的讶舰,一個子問題在下一階段決策中可能被多次使用到鞍盗。(該性質(zhì)并不是動態(tài)規(guī)劃適用的必要條件,但是如果沒有這條性質(zhì)跳昼,動態(tài)規(guī)劃算法同其他算法相比就不具備優(yōu)勢)


四般甲、解題步驟

動態(tài)規(guī)劃所處理的問題是一個多階段決策問題,一般由初始狀態(tài)開始鹅颊,通過對中間階段決策的選擇敷存,達到結(jié)束狀態(tài)。這些決策形成了一個決策序列堪伍,同時確定了完成整個過程的一條活動路線(通常是求最優(yōu)的活動路線)锚烦。動態(tài)規(guī)劃的設(shè)計都有著一定的模式,一般要經(jīng)歷以下幾個步驟:

????初始狀態(tài)→│決策1│→│決策2│→…→│決策n│→結(jié)束狀態(tài)

????(1)劃分階段:按照問題的時間特征帝雇,把問題分為若干個階段挽牢,在劃分階段時归苍,注意劃分后的階段一定要是有序的或者是可排序的喷户,否則問題就無法求解。

????(2)確定狀態(tài)和狀態(tài)變量:將問題發(fā)展到各個階段時所處于的各種客觀情況用不同的狀態(tài)表示出來晕窑,當然室叉,狀態(tài)的選擇要滿足無后效性睹栖。

????(3)確定決策并寫出狀態(tài)轉(zhuǎn)移方程:因為決策和狀態(tài)轉(zhuǎn)移有著天然的聯(lián)系,狀態(tài)轉(zhuǎn)移就是根據(jù)上一階段的狀態(tài)和決策來導(dǎo)出本階段的狀態(tài)茧痕。所以如果確定了決策野来,狀態(tài)轉(zhuǎn)移方程也就可寫出。但事實上常常是反過來做踪旷,根據(jù)相鄰兩個階段的狀態(tài)之間的關(guān)系來確定決策方法和狀態(tài)轉(zhuǎn)移方程曼氛。

????(4)尋找邊界條件:給出的狀態(tài)轉(zhuǎn)移方程是一個遞推式,需要一個遞推的終止條件或邊界條件令野。

一般舀患,只要解決問題的階段、狀態(tài)和狀態(tài)轉(zhuǎn)移決策確定了气破,就可以寫出狀態(tài)轉(zhuǎn)移方程聊浅。實際應(yīng)用中可以按以下幾個簡化的步驟進行設(shè)計:

(1)分析最優(yōu)解的性質(zhì),并刻畫其結(jié)構(gòu)特征。

(2)遞歸的定義最優(yōu)解低匙。

(3)以自底向上或自頂向下的記憶化方式(備忘錄法)計算出最優(yōu)值旷痕。

(4)根據(jù)計算最優(yōu)值時得到的信息,構(gòu)造問題的最優(yōu)解顽冶。


五欺抗、算法實現(xiàn)的說明

動態(tài)規(guī)劃的主要難點在于上面4個步驟的確定,一旦設(shè)計完成强重,實現(xiàn)部分就會非常簡單绞呈。使用動態(tài)規(guī)劃求解問題,最重要的就是確定動態(tài)規(guī)劃三要素:

(1)問題的階段?

(2)每個階段的狀態(tài)

(3)從前一個階段轉(zhuǎn)化到后一個階段之間的遞推關(guān)系竿屹。

遞推關(guān)系必須是從次小的問題開始到較大的問題之間的轉(zhuǎn)化报强,從這個角度來說,動態(tài)規(guī)劃往往可以用遞歸程序來實現(xiàn)拱燃,不過因為遞推可以充分利用前面保存的子問題的解來減少重復(fù)計算秉溉,所以對于大規(guī)模問題來說,有遞歸不可比擬的優(yōu)勢碗誉,這也是動態(tài)規(guī)劃算法的核心之處召嘶。

確定了動態(tài)規(guī)劃的這三要素,整個求解過程就可以用一個最優(yōu)決策表來描述哮缺,最優(yōu)決策表是一個二維表弄跌,其中行表示決策的階段,列表示問題狀態(tài)尝苇,表格需要填寫的數(shù)據(jù)一般對應(yīng)此問題的在某個階段某個狀態(tài)下的最優(yōu)值(如最短路徑铛只,最長公共子序列,最大價值等)糠溜,填表的過程就是根據(jù)遞推關(guān)系淳玩,從1行1列開始,以行或者列優(yōu)先的順序非竿,依次填寫表格蜕着,最后根據(jù)整個表格的數(shù)據(jù)通過簡單的取舍或者運算求得問題的最優(yōu)解。

??????????f(n,m)=max{f(n-1,m),?f(n-1,m-w[n])+P(n,m)}



貪心算法

一红柱、基本概念

在對問題求解時承匣,總是做出在當前看來是最好的選擇。也就是說锤悄,不從整體最優(yōu)上加以考慮韧骗,他所做出的僅是在某種意義上的局部最優(yōu)解。

貪心算法沒有固定的算法框架铁蹈,算法設(shè)計的關(guān)鍵是貪心策略的選擇宽闲。必須注意的是众眨,貪心算法不是對所有問題都能得到整體最優(yōu)解握牧,選擇的貪心策略必須具備無后效性容诬,即某個狀態(tài)以后的過程不會影響以前的狀態(tài),只與當前狀態(tài)有關(guān)沿腰。所以览徒,對所采用的貪心策略一定要仔細分析其是否滿足無后效性。


二颂龙、基本思路

1.建立數(shù)學(xué)模型來描述問題习蓬。

2.把求解的問題分成若干個子問題。

3.對每一子問題求解措嵌,得到子問題的局部最優(yōu)解躲叼。

4.把子問題的解局部最優(yōu)解合成原來解問題的一個解。


三企巢、貪心算法適用的問題

貪心策略適用的前提是:局部最優(yōu)策略能導(dǎo)致產(chǎn)生全局最優(yōu)解枫慷。實際上,貪心算法適用的情況很少浪规。一般或听,對一個問題分析是否適用于貪心算法,可以先選擇該問題下的幾個實際數(shù)據(jù)進行分析笋婿,就可做出判斷誉裆。


四、貪心算法的實現(xiàn)框架

從問題的某一初始解出發(fā)缸濒;

while(能朝給定總目標前進一步)

????{?

利用可行的決策足丢,求出可行解的一個解元素;

????}

由所有解元素組合成問題的一個可行解庇配;


五斩跌、貪心策略的選擇

因為用貪心算法只能通過解局部最優(yōu)解的策略來達到全局最優(yōu)解,因此讨永,一定要注意判斷問題是否適合采用貪心算法策略滔驶,找到的解是否一定是問題的最優(yōu)解。


六卿闹、例題分析——[背包問題]

有一個背包揭糕,背包容量是M=150。有7個物品锻霎,物品可以分割成任意大小著角。要求盡可能讓裝入背包中的物品總價值最大,但不能超過總?cè)萘俊?/p>

物品?A?B?C?D?E?F?G

重量?35?30?60?50?40?10?25

價值?10?40?30?50?35?40?30

分析:

目標函數(shù):?∑pi最大? ?約束條件是裝入的物品總重量不超過背包容量:∑wi<=M(?M=150)

(1)根據(jù)貪心的策略旋恼,每次挑選價值最大的物品裝入背包吏口,得到的結(jié)果是否最優(yōu)?

(2)每次挑選所占重量最小的物品裝入是否能得到最優(yōu)解?

(3)每次選取單位重量價值最大的物品产徊,成為解本題的策略昂勒。

值得注意的是,貪心算法并不是完全不可以使用舟铜,貪心策略一旦經(jīng)過證明成立后戈盈,它就是一種高效的算法。貪心算法還是很常見的算法之一谆刨,這是由于它簡單易行塘娶,構(gòu)造貪心策略不是很困難。

可惜的是痊夭,它需要證明后才能真正運用到題目的算法中刁岸。一般來說,貪心算法的證明圍繞著:整個問題的最優(yōu)解一定由在貪心策略中存在的子問題的最優(yōu)解得來的她我。對于例題中的3種貪心策略虹曙,都是無法成立(無法被證明)的,解釋如下:

(1)貪心策略:選取價值最大者鸦难。反例:

????W=30? ?物品:A?B?C? ? ? 重量:28?12?12? ? ? 價值:30?20?20

根據(jù)策略根吁,首先選取物品A,接下來就無法再選取了合蔽,可是击敌,選取B、C則更好拴事。

(2)貪心策略:選取重量最小沃斤。它的反例與第一種策略的反例差不多。

(3)貪心策略:選取單位重量價值最大的物品刃宵。反例:

????W=30? ?物品:A?B?C? ? ? 重量:28?20?10? ? ? 價值:28?20?10

根據(jù)策略衡瓶,三種物品單位重量價值一樣,程序無法依據(jù)現(xiàn)有策略作出判斷牲证,如果選擇A哮针,則答案錯誤。



回溯法(DFS)

一坦袍、基本概念

回溯算法實際上一個類似枚舉的搜索嘗試過程十厢,主要是在搜索嘗試過程中尋找問題的解,當發(fā)現(xiàn)已不滿足求解條件時捂齐,就“回溯”返回蛮放,嘗試別的路徑。

回溯法是一種選優(yōu)搜索法奠宜,按選優(yōu)條件向前搜索包颁,以達到目標瞻想。但當探索到某一步時,發(fā)現(xiàn)原先選擇并不優(yōu)或達不到目標娩嚼,就退回一步重新選擇蘑险,這種走不通就退回再走的技術(shù)為回溯法,而滿足回溯條件的某個狀態(tài)的點稱為“回溯點”待锈。許多復(fù)雜的漠其,規(guī)模較大的問題都可以使用回溯法嘴高,有“通用解題方法”的美稱竿音。


二、基本思想

在包含問題的所有解的解空間樹中拴驮,按照深度優(yōu)先搜索的策略春瞬,從根結(jié)點出發(fā)深度探索解空間樹。當探索到某一結(jié)點時套啤,要先判斷該結(jié)點是否包含問題的解宽气,如果包含,就從該結(jié)點出發(fā)繼續(xù)探索下去潜沦,如果該結(jié)點不包含問題的解萄涯,則逐層向其祖先結(jié)點回溯。

若用回溯法求問題的所有解時唆鸡,要回溯到根涝影,且根結(jié)點的所有可行的子樹都要已被搜索遍才結(jié)束。而若使用回溯法求任一個解時争占,只要搜索到問題的一個解就可以結(jié)束燃逻。


三、解題步驟

(1)針對所給問題臂痕,確定問題的解空間:首先應(yīng)明確定義問題的解空間伯襟,問題的解空間應(yīng)至少包含問題的一個(最優(yōu))解;

(2)確定結(jié)點的擴展搜索規(guī)則握童;

(3)以深度優(yōu)先方式搜索解空間姆怪,并在搜索過程中用剪枝函數(shù)避免無效搜索。


四澡绩、算法框架

(1)問題框架

設(shè)問題的解是一個n維向量(a1,a2,………,an),約束條件是ai(i=1,2,3,…..,n)之間滿足某種條件稽揭,記為f(ai)。

(2)非遞歸回溯框架

? 1.int?a[n],i;

? 2.初始化數(shù)組a[];

? 3. i?=?1;

? 4:?while(i>0(有路可走)???and??(未達到目標))??//還未回溯到頭

? 5:?{

? 6:?????if(i?>?n)??????????????????????????????????????????????//搜索到葉結(jié)點

? 7:?????{???

? 8:???????????搜索到一個解英古,輸出淀衣;

? 9:?????}

?10:?????else???????????????????????????????????????????????????//處理第i個元素

??11:?????{?

??12:a[i]第一個可能的值;

??13:???????????while(a[i]在不滿足約束條件且在搜索空間內(nèi))

??14:???????????{

??15:a[i]下一個可能的值召调;

??16:???????????}

??17:???????????if(a[i]在搜索空間內(nèi))

??18:??????????{

??19:???????????????標識占用的資源膨桥;

??20:???????????????i?=?i+1;??????????????????????????????//擴展下一個結(jié)點

??21:??????????}

??22:??????????else?

??23:?????????{

??24:???????????????清理所占的狀態(tài)空間蛮浑;????????????//回溯

??25:i?=?i–1;?

??26:??????????}

??27:?}

(3)遞歸的算法框架

回溯法是對解空間的深度優(yōu)先搜索,在一般情況下使用遞歸函數(shù)來實現(xiàn)回溯法比較簡單只嚣,其中i為搜索的深度沮稚,框架如下:

???1:?int?a[n];

???2:?try(int?i)

???3:?{

???4:?????if(i>n)

???5:輸出結(jié)果;

???6:??????else

???7:?????{

???8:????????for(j?=下界;?j?<=?上界;?j=j+1)??//枚舉i所有可能的路徑

???9:????????{

??10:????????????if(fun(j))?????????????????//滿足限界函數(shù)和約束條件

??11:??????????????{

??12:?????????????????a[i]?=?j;

??13:???????????????...?????????????????????????//其他操作

??14:?????????????????try(i+1);

??15:回溯前的清理工作(如a[i]置空值等);

??16:???????????????}

??17:??????????}

??18:??????}

??19:?}


分支限界法(BFS)

一、基本概念

類似于回溯法册舞,也是一種在問題的解空間樹T上搜索問題解的算法蕴掏,但在一般情況下,分支限界法與回溯法的求解目標不同调鲸∈⒔埽回溯法的求解目標是找出T中滿足約束條件的所有解,而分支限界法的求解目標則是找出滿足約束條件的一個解藐石,或是在滿足約束條件的解中找出使某一目標函數(shù)值達到極大或極小的解即供,即在某種意義下的最優(yōu)解。


二于微、一般過程

由于求解目標不同逗嫡,導(dǎo)致分支限界法與回溯法在解空間樹T上的搜索方式也不相同≈暌溃回溯法以深度優(yōu)先的方式搜索解空間樹T驱证,而分支限界法則以廣度優(yōu)先或以最小耗費優(yōu)先的方式搜索解空間樹T。

分支限界法的搜索策略:在擴展結(jié)點處恋腕,先生成其所有的兒子結(jié)點(分支)抹锄,然后再從當前的活結(jié)點表中選擇下一個擴展對點。為了有效地選擇下一擴展結(jié)點吗坚,以加速搜索的進程祈远,在每一活結(jié)點處,計算一個函數(shù)值(限界)商源,并根據(jù)這些已計算出的函數(shù)值车份,從當前活結(jié)點表中選擇一個最有利的結(jié)點作為擴展結(jié)點,使搜索朝著解空間樹上有最優(yōu)解的分支推進牡彻,以便盡快地找出一個最優(yōu)解扫沼。

分支限界法常以廣度優(yōu)先或以最小耗費(最大效益)優(yōu)先的方式搜索問題的解空間樹。問題的解空間樹是表示問題解空間的一棵有序樹庄吼,常見的有子集樹和排列樹缎除。在搜索問題的解空間樹時,分支限界法與回溯法對當前擴展結(jié)點所使用的擴展方式不同总寻。在分支限界法中器罐,每一個活結(jié)點只有一次機會成為擴展結(jié)點〗バ校活結(jié)點一旦成為擴展結(jié)點轰坊,就一次性產(chǎn)生其所有兒子結(jié)點铸董。在這些兒子結(jié)點中,那些導(dǎo)致不可行解或?qū)е路亲顑?yōu)解的兒子結(jié)點被舍棄肴沫,其余兒子結(jié)點被子加入活結(jié)點表中粟害。此后,從活結(jié)點表中取下一結(jié)點成為當前擴展結(jié)點颤芬,并重復(fù)上述結(jié)點擴展過程悲幅。這個過程一直持續(xù)到找到所求的解或活結(jié)點表為空時為止。


三站蝠、回溯法和分支限界法的區(qū)別

回溯法深度優(yōu)先搜索堆椞撸活結(jié)點的所有可行子結(jié)點被遍歷后才被從棧中彈出找出滿足約束條件的所有解。

分支限界法廣度優(yōu)先或最小消耗優(yōu)先搜索隊列沉衣、優(yōu)先隊列每個結(jié)點只有一次成為活結(jié)點的機會找出滿足約束條件的一個解或特定意義下的最優(yōu)解郁副。


如何學(xué)習(xí)才能快速入門并精通呢?

當真正開始學(xué)習(xí)時難免不知從何入手豌习,從而導(dǎo)致效率低下影響繼續(xù)學(xué)習(xí)的信心。

但最重要的是不知道需要重點掌握哪些技術(shù)拔疚,學(xué)習(xí)時頻繁踩坑肥隆,最終浪費大量時間。

為了讓學(xué)習(xí)變得輕松高效稚失, 現(xiàn)在給大家提供一個學(xué)習(xí)平臺栋艳,讓你在實踐中積累經(jīng)驗掌握原理。主要方向是JAVA架構(gòu)師句各,在這里你可以學(xué)習(xí)Java工程化吸占、高性能及分布式、深入淺出凿宾、性能調(diào)優(yōu)矾屯、Spring,MyBatis初厚,Netty源碼分析和大數(shù)據(jù)等知識點件蚕。可以加入Java后端技術(shù)群:819940388产禾,群里有阿里大牛直播講解技術(shù)排作,或是關(guān)注微信公眾號:Java資訊庫,回復(fù)“架構(gòu)”亚情,免費的大型互聯(lián)網(wǎng)Java技術(shù)視頻分享給大家妄痪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市楞件,隨后出現(xiàn)的幾起案子衫生,更是在濱河造成了極大的恐慌僧著,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件障簿,死亡現(xiàn)場離奇詭異盹愚,居然都是意外死亡,警方通過查閱死者的電腦和手機站故,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門皆怕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人西篓,你說我怎么就攤上這事愈腾。” “怎么了岂津?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵虱黄,是天一觀的道長。 經(jīng)常有香客問我吮成,道長橱乱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任粱甫,我火速辦了婚禮泳叠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘茶宵。我一直安慰自己危纫,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布乌庶。 她就那樣靜靜地躺著种蝶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞒大。 梳的紋絲不亂的頭發(fā)上螃征,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音糠赦,去河邊找鬼会傲。 笑死,一個胖子當著我的面吹牛拙泽,可吹牛的內(nèi)容都是我干的淌山。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼顾瞻,長吁一口氣:“原來是場噩夢啊……” “哼泼疑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起荷荤,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤退渗,失蹤者是張志新(化名)和其女友劉穎移稳,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體会油,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡个粱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了翻翩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片都许。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嫂冻,靈堂內(nèi)的尸體忽然破棺而出胶征,到底是詐尸還是另有隱情,我是刑警寧澤桨仿,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布睛低,位于F島的核電站,受9級特大地震影響服傍,放射性物質(zhì)發(fā)生泄漏钱雷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一伴嗡、第九天 我趴在偏房一處隱蔽的房頂上張望急波。 院中可真熱鬧,春花似錦瘪校、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至伸辟,卻和暖如春麻惶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背信夫。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工窃蹋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人静稻。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓警没,卻偏偏與公主長得像,于是被迫代替她去往敵國和親振湾。 傳聞我的和親對象是個殘疾皇子杀迹,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353