原创 如何在面試時寫出來高質量的代碼

可以從代碼的規範性、完整性、健壯性、擴展性等幾個方面提高代碼的質量。 (1)代碼的規範性 書寫清晰、佈局清晰、命名合理; 書寫清晰:可以寫慢一點,但是字跡清晰; 佈局清晰:縮進,以及代碼的風格統一; 命名合理:變量命令,函數命名,儘量用容

原创 基本有序數組的排序_legend

(1)背景 已知一個幾乎有序的數組,幾乎有序是指,如果把數組排好順序的話,每個元素移動的距離可以不超過k,並且k相對於數組來說比較小。請選擇一個合適的排序算法針對這個數據進行排序。 給定一個int數組A,同時給定A的大小n和題意中的k,請

原创 linux進程地址空間分析及其應用_legend

  (1)linux進程的虛擬地址傳統空間分佈 注:爲了使內核切換到傳統內存佈局,執行命令#sysctl -w vm.legacy_va_layout=1(因爲Linux 2.6.7及以後版本內核已經默認使用新的內存佈局方式了)。 (1

原创 DPDK-LPM的實現原理----legend050709

LPM原理  

原创 hashMap & linkedHashMap & concurrentHashMap 原理----legend050709

(1)hashMap (2)linkedHashMap ---------------- (1)hashMap (1.1)hash Hash 就是把任意長度的輸入(又叫做預映射, pre-image),通過哈希算法,變換成固定長度的輸出

原创 生產者消費者之雙緩衝區--legend050709

(1)背景 (1.1)減少鎖的衝突 在生產者-消費者模式中,我們常常會使用到隊列,這個隊列在多個線程共享訪問時存在互斥和競爭操作, 意味着每次訪問都要加鎖。用一個緩衝區,生產者和消費者需要先獲取到緩衝區的鎖才能進行put和get操作,每一

原创 linux多線程協作--legend050709

(1)三個線程協作打印ABCABCABC (2)兩個線程協作打印奇數偶數 -------------------------------- (1)三個線程協作打印ABCABCABC (1.1)思路 併發編程核心是三大塊:分工、互斥和同步。

原创 高效的hash表實現----legend050709

(1)背景 (2)hash函數的好壞評價標準 (3)裝載因子(元素個數)過大怎麼辦? (4)解決hash衝突的方法 (4.1)拉鍊法 (4.2)開放地址法 (5)工業級散列表範例 ------- (1)背景 散列表的查詢效率並不能籠統地說

原创 linux C位域總結----legend050709

(1)基礎 (1.1)背景 有些信息在存儲時,並不需要佔用一個完整的字節, 而只需佔幾個或一個二進制位。例如在存放一個開關量時,只有0和1 兩種狀態,用一位二進位即可。爲了節省存儲空間,並使處理簡便,C語言又提供了一種數據結構,稱爲“位域

原创 二分查找的變形應用3----legend050709

二分查找的應用總結 (1)n的平方根保留m位小數 (2)從小到大的有序數組循環右移n(n>=0)位,查找最小值; (3)從小到大的有序數組中,查找絕對值最小的元素; (4)從小到大的有序數組循環右移n(n>=0)位,查找某個特定值 (5)

原创 dash for Mac介紹--legend050709

 作爲一名死coder,每天最常見的動作就是查看各種API文檔,你一定也有過同時打開N個窗口(HTML、PDF、CHM),不停的在編輯器與文檔之間切換的感受吧?怎麼說呢,其實我很討厭這種枯燥無味的動作,那麼如何才能提高效率,減少無用功呢?

原创 阿爾卑斯山時間規劃法

  部分視頻:https://mooc.study.163.com/course/2001198002?tid=2001403001#/info 完整視頻: 參考: https://blog.csdn.net/whdxjbw/articl

原创 最大最小堆的應用_legend

此中拿最小堆來舉例 (一)n個數中取出最小的k個數; (二)n個數中取出最大的k個數(TOPK 問題); (三) 優先級隊列     ********************************** (1)n個數中取出最大的k個數(T

原创 shell學習總結--legend-050709

(1) shell 檢查的網站: 非常推薦: https://www.yanbinghu.com/2020/04/06/25735.html  

原创 mac神器之alfred使用

Alfred最基礎的功能、也是最常用的功能之一就是文件搜索。Alfred提供了與Spotlight相媲美的文件搜索功能,並且在此基礎之上,開發了一系列關於文件的操作功能,並且可以開發自己的Workflow,對文件進行更加隨心所欲的操作。