原创 數據結構之哈希表(散列表)

本文附帶部分leetcode的例題和僞代碼 哈希表 哈希表(Hash table,也叫散列表),是根據關鍵碼值(Key value)而直接進行訪問的數據結構 也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度

原创 鏈表(單/雙/單循環/雙循環)

文中鏈接附上java版代碼 1.單鏈表 單鏈表是一種鏈式存儲的數據結構,方便插入/刪除數據元素,對比數組,在進行插入刪除等操作時,更節省空間。單鏈表中每一個結點的構成都是由數據元素+指針構成的 2.單循環鏈表 單循環鏈表與單鏈表的

原创 JAVA單鏈表的簡單操作(遞增單鏈表插入數據,鏈表逆置,鏈表逆序合成)

JAVA寫一個單鏈表 1、已知帶頭結點的動態單鏈表 L 中的結點是按整數值遞增排序的,試寫一 算法將值爲 x 的結點插入到表 L 中,使 L 仍然有序。要求算法的時間複雜度爲 O(n),空間複雜度爲 O(1)。 2、設計一算法,逆

原创 四種隊列解析總結

隊列是一種特殊的線性表。 只允許在表的前端進行刪除操作,在表的後端進行插入操作。 1.普通隊列 舉例: import java.util.LinkedList; import java.util.Queue; publi

原创 springboot項目連接redis(雲服務器配置redis)

雲服務器配置redis給springboot項目使用 請仔細閱讀文章,常見錯誤都有羅列 本文選擇的是阿里雲的輕量級學生機,搭載linux的Centos7系統 本文使用的集成環境是IDEA,使用了阿里的倉庫,(也科學上網來着,但是

原创 歸併排序及分析(JAVA)

歸併排序 歸併排序是遞歸的分治算法 分治 分治的思想是把一個複雜的問題分成兩個或多個相同或相似的子問題,再把子問題分成更小的子問題直到最後子問題可以簡單地直接求解; 比如快排、歸併排序 傅里葉變換等 分治策略:對於一個規模爲n的問

原创 插入排序以及分析(JAVA)

插入排序 對於少量元素的排序,插入排序是一個有效的算法 插入排序的基本思想: 是將一個記錄插入到已經排好序的有序表中,從而一個新的、記錄數增1的有序表 附代碼(用了單例模式,因爲這個類是爲了算法算法性能的內部分析的程序做的)

原创 冒泡排序以及複雜度分析(JAVA)

冒泡排序(JAVA) 冒泡排序算法的原理如下: [1] 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 針對所

原创 選擇排序以及分析(JAVA)

選擇排序 基本思想: 從左到右遍歷數組,找出最小/大的放在左側與left所標誌的位置交換元素,即第一次將數組中最小(或者最大)的元素置頂(數組下標爲0的位置); 然後從此數組下標爲0的位置向右找最小(或者最大)的元素與下標爲1的

原创 (Java)哈夫曼編碼譯碼器-壓縮/解壓縮編碼

哈夫曼編碼譯碼器 僅供學習和參考,這份代碼的算法和文件操作都參考了許多文章。 僅供學習和參考,這份代碼的算法和文件操作都參考了許多文章。 僅供學習和參考,這份代碼的算法和文件操作都參考了許多文章。 1. 選擇需要進行編碼的文件 2

原创 JAVA單循環鏈表和雙循環鏈表簡單操作

JAVA單循環鏈表和雙循環鏈表簡單操作1、刪除單循環鏈表某結點的直接前驅點2、三個循環鏈表儲存一個循環鏈表的不同類字符3、有一雙鏈表,每個結點中除有 prior、data 和 next 域外,還有一訪問頻度 域freq,在鏈表被啓