原创 C++:模擬實現list容器(支持迭代器)

模擬實現list容器(支持迭代器) 要模擬實現一個list容器,主要就是相關頭插頭刪尾插尾刪的接口,這些非常常用。 另外有一個點灰常重要!!那就是list的迭代器,list的迭代器不能用原生指針去模擬實現,因爲鏈表的迭代器加一是下

原创 測試:如何測試一個用戶登錄界面

要編寫一個較好的測試用例就應該從用戶需求入手。 比如如何測試一個用戶登錄界面,那麼我們就要考慮這個登錄界面是彈出式的還是內嵌網頁式的,同時對用戶名和密碼的長度,密碼的強度(必須多少位,特殊字符,數字,大小寫等等),另外對用戶界面的

原创 數據結構:AVL樹旋轉原理和簡易實現

AVL樹旋轉原理和簡易實現 二叉搜索樹雖然可以提高搜索效率,但是如果插入的數據有序時很有可能變成單支,如果變成單支樹的時候,那麼查找時效率也不高了。因此引入AVL樹。 AVL樹是當向這棵樹插入節點的時候,要保證每個節點的左右子樹的

原创 MySQL:CentOS 7通過yum安裝MariaDB

如何在CentOS 7下通過yum安裝MariaDB呢? 這裏附上大佬的安裝步驟: https://zhuanlan.zhihu.com/p/49046496 博主就是按照這個步驟來的,炒雞詳細~相信你也能看明白 |ू・ω・` )

原创 C++(面試題):給40億個不重複的無符號整數,沒排過序,如何快速判斷一個數是否在這40億個數中

給40億個不重複的無符號整數,沒排過序,給你一個無符號整數,如何快速判斷這個數是否在這40億個數中? 首先看到這個題第一個想到的就是遍歷一遍,看這個數在不在。但是這樣的時間複雜度太高了O(N),數據量太大,因此該方法不行。 其次我

原创 Linux:讀者寫者模型(讀寫鎖)

讀者寫者模型(讀寫鎖) 在編寫多線程時,有可能會出現有些公共區域的數據修改的機會比較少,但是讀的機會反而很多,也就是說寫者少,讀者多。那麼在讀的過程中往往伴隨着查找的操作,耗時較長,如果給這種代碼加鎖的話,會導致效率的降低,因此讀

原创 MySQL:外鍵及外鍵的使用

外鍵及外鍵的使用 如果公共關鍵字在一個關係中是主關鍵字,那麼這個公共關鍵字被稱爲另一個關係的外鍵。 由此可見,外鍵表示了兩個關係之間的相關聯繫。以另一個關係的外鍵作主關鍵字的表被稱爲主表,具有此外鍵的表被稱爲主表的從表。外鍵又稱作

原创 數據結構:紅黑樹的旋轉原理和模擬實現

紅黑樹的旋轉原理和模擬實現 我們瞭解到AVL樹雖然效率很高,但是它是通過多次的旋轉纔到達一個絕對的平衡,旋轉的消耗其實也很大。因此開始引入近似平衡的一棵樹----紅黑樹(RBTree)。紅黑樹每一個節點不是紅色的就是黑色的,它保證

原创 數據結構:大數據處理問題

1.給定100億個整數,設計算法找到只出現一次的整數? ①方法一 100億個整數就是400億個字節,42億九千萬是4G,那麼1G就是10億字節,所以要存下100億個整數需要40G的內存空間。因此我們採用位圖100億個整數大概就是1

原创 MySQL:建庫建表等簡單操作

庫的相關操作 – 查看已有庫 SHOW DATABASES; SHOW DATABASES; SHOW DATABASES\G – 新建庫的操作 CREATE DATABASE 庫名; CREATE DATABASE `ET`;

原创 數據結構:布隆過濾器

布隆過濾器 假如現在有40億個ip地址(string類型),然後給你一個ip地址,讓你查找這個ip地址在不在這40億個ip地址裏?我們應該怎麼做呢? 如果用哈希表來處理的話,這裏有40億的數據,數據量太大,因此太佔用空間 如果用

原创 Linux:進程控制(創建、終止、等待、替換)

進程控制(創建、終止、等待、替換) 進程創建(fork) fork之後系統裏多了一個進程,也就意味着多了一套PCB。 fork(用於創建子進程) #include <unistd.h> pid_t fork(void); fo

原创 ffmepg:使用ffmpeg轉換音視頻格式

使用ffmpeg轉換音視頻格式 轉換音頻格式 ffmpeg -i input.mp3 output.wav //把mp3文件轉換爲wav文件 ffmpeg -i input.wav -acodec libmp3lame -aq 4

原创 Python:Python序列的切片操作

Python序列的切片操作 序列(consequence)是 python 中一種數據結構,這種數據結構根據索引來獲取序列中的對象。 一般說來,具有序列結構的數據類型都可以使用:index, len, max, min, in,

原创 Linux:線程同步

線程同步 同步: 在保證數據安全的前提下,讓線程能夠按照某種特定的順序訪問臨界資源,從而有效避免飢餓問題,叫做同步。 競態條件: 因爲時序問題,而導致程序異常,我們稱之爲競態條件。 沒有同步導致的飢餓問題: 假如有一個線程,它非常