原创 白嫖午餐了,乾飯人快衝

今天剛發現的餓了麼可以薅羊毛,掃描下面的二維碼,每天都可以領紅包,沒有套路的,一般都在10塊以上,滿20可用。 乾飯人快衝吧!

原创 圖的遍歷 --- 廣度優先遍歷

1. 廣度優先遍歷思路: 還是以之前深度優先遍歷的圖爲例,如下: A B C D E F G H A[0, 1, 0, 0, 0, 1, 0, 1] B[1, 0, 1, 0, 0, 0, 1, 0] C[0, 1, 0,

原创 圖的遍歷 --- 深度優先遍歷

在講深度優先遍歷之前,先來回顧一下圖這種數據結構。 1. 是什麼? 圖,也是一種數據結構,其節點可以具有零個或者多個相鄰元素,兩個節點之間的連接稱爲邊,節點也稱爲頂點,圖表示的是多對多的關係。 2. 圖的常用概念: 頂點:就是節點,上圖

原创 絲襪哥 --- swagger的使用

一、是什麼? swagger,俗稱絲襪哥,是用來生成接口文檔的。沒有使用swagger的時候,你寫完後端接口,得自己將後端接口地址一個個地整理出來,告訴別人這個接口是幹嘛的,要傳哪些參數,正常情況下返回的參數是咋樣的,非正常情況返回的又是咋

原创 赫夫曼編碼&解碼

之前說到了如何構建赫夫曼樹,那麼赫夫曼樹有什麼用呢?赫夫曼樹經典的應用之一就是赫夫曼編碼。 1. 赫夫曼編碼是什麼? 它是一種編碼方式,可以用在電訊通信中,或者用於對數據文件進行壓縮,壓縮率一般在20%到90%。 2. 爲什麼要有赫夫曼編碼

原创 二叉樹詳細教程 --- 請食用 一、樹的介紹 二、二叉樹的遍歷 三、二叉樹的刪除 四、順序存儲二叉樹 五、線索化二叉樹 六、遍歷線索化二叉樹

爲了後續學習堆排序以及MySQL索引等知識,接下來會重溫一下樹這種數據結構,包括二叉樹、赫夫曼樹、二叉排序樹(BST)、平衡二叉樹(AVL)、B樹和B+樹。 一、樹的介紹 1. 爲什麼要有樹這種結構? 有了數組和鏈表,爲什麼還要有樹?先來看

原创 鏈表騷操作 --- 快慢指針 一、找到鏈表的倒數第K個節點 二、找到鏈表的中點 三、刪除鏈表倒數第K個節點 四、判斷鏈表是否有環

快慢指針,顧名思義,就是操作鏈表的時候,使用兩個指針,一快一慢。靈活使用快慢指針,可以巧妙的解決很多問題。本文將介紹如下問題: 找到鏈表中的倒數第K個節點(leetCode 劍指offer22); 找到鏈表的中點; 刪除鏈表倒數第K個節點

原创 四大查找算法 一、順序查找 二、二分查找 三、插值查找 四、斐波那契查找

在Java中,常用的查找算法有以下四種: 順序查找; 二分查找; 插值查找; 斐波那契查找; 歡迎大家關注我的公衆號 javawebkf,目前正在慢慢地將簡書文章搬到公衆號,以後簡書和公衆號文章將同步更新,且簡書上的付費文章在公衆號上

原创 排序算法 --- 桶排序 一、排序思想 二、代碼實現

一、排序思想 之前將的計數排序,有些侷限性,比如數列最大值和最小值差距不能太大,而且只能排整數。桶排序就對這些侷限性做了彌補。桶排序的思想就是每個桶代表一個區間範圍,裏面可以裝若干個元素。然後對這些桶內部進行排序,最後遍歷這些桶,那麼數列就

原创 排序算法 --- 基數排序 一、排序思想 二、代碼實現

一、排序思想 基數排序是桶排序的擴展,它將所有待排序的數值統一爲同樣的數位長度,數位較短的前面補0,然後從最低位開始,依次進行一次排序。這樣從最低爲排序一直到最高位排序完成後,待排序列就有序了。 歡迎大家關注我的公衆號 javawebkf

原创 排序算法 --- 希爾排序 一、排序思想 二、代碼實現

一、排序思想 之前說到插入排序,希爾排序就對其進行了一個優化,優化的思路是: 對待排序列進行分組,組數爲gap = arr.length / 2; 對每一組進行插入排序,然後再進行分組,gap = gap / 2; 再對每一組進行插入排序

原创 排序算法 --- 插入排序 一、排序思想 二、代碼實現 三、存在的問題

之氣說到了冒泡和選擇排序,接下來看看插入排序。 一、排序思想 把n個待排的元素看成一個有序表和一個無序表,開始時,有序表只包含1個元素,無序表中有n - 1個元素。排序過程中每次從無序表中取出第一個元素,把它的排序碼依次與有序表元素的排序碼

原创 排序算法 --- 快速排序 一、排序思想 二、代碼實現

一、排序思想 將數組中的一個數作爲基準,比該數小的放到左邊,比該數大的放到右邊; 對左右兩邊再進行上述操作,即把左邊當成一個新數組,找新的基準數,右邊也一樣; 直到不能再分割下去爲止。 歡迎大家關注我的公衆號 javawebkf,目前

原创 排序算法 --- 計數排序 一、排序思想 二、代碼實現

前面說的那些排序算法,都是要通過比較來實現的。排序還能不通過比較來實現?是的,計數排序就是這麼神奇。 一、排序思想 創建一個計數數組,利用數組下標來表示該元素,用數組下標對應的值來表示元素出現的次數。然後遍歷計數數組即可。比如下標爲5,元素

原创 排序算法 --- 歸併排序 一、排序思想 二、代碼實現

一、排序思想 歸併排序是採用分治算法,即將一個大問題切分成一些小問題然後遞歸求解。歸併排序的圖解如下: 分的過程簡單,就是將數組拆開來,拆到每組只有一個元素爲止。治的過程是怎麼排序的呢?以最後一次治爲例,即將4 5 7 8和1 2 3 6