原创 [一步步學數據結構與算法 16]-二分查找(下)

一、四種常見的二分查找變形問題 1.查找第一個值等於給定值的元素 public int bsearch(int[] a, int n, int value) { int low = 0; int high = n - 1;

原创 [一步步學數據結構與算法 15]-二分查找(上)

一、什麼是二分查找? 二分查找針對的是一個有序的數據集合,每次通過跟區間中間的元素對比,將待查找的區間縮小爲之前的一半,直到找到要查找的元素,或者區間縮小爲0。 二、時間複雜度分析? 1.時間複雜度 假設數據大小是n,每次查找後數

原创 爬蟲複習筆記

一、“大數據時代”,數據獲取的方式: 企業生產的用戶數據:大型互聯網公司有海量用戶,所以他們積累數據有天然的優勢。 有數據意識的中小型企業,也開始積累的數據。 數據管理諮詢公司:通常這樣的公司有很龐大的數據採集團隊,一般會

原创 無題

1024快樂

原创 使用gitee(碼雲)提升git clone的速度

開源中國提供的代碼倉庫提供了一個功能,就是它可以將github賬號中的代碼 clone 到開源中國的賬戶中去。這個代碼倉庫叫做 碼雲 。 傳送門: https://gitee.com/ 1 將github上面你想要搞下來的項目首先

原创 解決Python(pip)安裝庫文件過慢的方法

暫時換源 sudo pip3 install xxxx[要安裝的庫名稱] -i https://pypi.douban.com/simple/

原创 IMU orientation Filter developed by Sebastian Madgwick(IMU數據融合)

一篇寫的非常好的解析: Madgwick IMU Filter IMU Data Fusing: Complementary, Kalman, and Mahony Filter 關於Madgwick算法的介紹: Madgwick

原创 [一步步學數據結構與算法 21]-哈希算法(下)

1.負載均衡 1.1.需求 如何實現一個會話粘滯(session sticky)的負載均衡算法?也就是說,在一次會話中的所有請求都路由到同一個服務器上。 1.2.解決方案 通過哈希算法對客戶端IP或會話ID計算哈希值,將取得的哈希

原创 [一步步學數據結構與算法 20]-哈希算法(上)

帶着問題來學習: 1.如何防止數據庫中的用戶信息被脫庫? 2.你會如何存儲用戶密碼這麼重要的數據嗎?僅僅 MD5 加密一下存儲就夠了嗎? 3.在實際開發中,我們應該如何用哈希算法解決問題? 一、什麼是哈希算法? 1.定義 將任意長

原创 [一步步學數據結構與算法 19]-散列表(下)

帶着問題去學習: 1.爲什麼散列表和鏈表經常放在一起使用? 2.散列表和鏈表如何組合起來使用? 一、爲什麼散列表和鏈表經常放在一起使用? 1.散列表的優點:支持高效的數據插入、刪除和查找操作 2.散列表的缺點:不支持快速順序遍歷散

原创 [一步步學數據結構與算法 18]-散列表(中)

面試題目:如何設計一個工業級的散列函數? 思路: 何爲一個工業級的散列表?工業級的散列表應該具有哪些特性?結合學過的知識,我覺的應該有這樣的要求: 1.支持快速的查詢、插入、刪除操作; 2.內存佔用合理,不能浪費過多空間; 3.性

原创 [一步步學數據結構與算法 18]-散列表(上)

一、散列表的由來? 1.散列表來源於數組,它藉助散列函數對數組這種數據結構進行擴展,利用的是數組支持按照下標隨機訪問元素的特性。 2.需要存儲在散列表中的數據我們稱爲鍵,將鍵轉化爲數組下標的方法稱爲散列函數,散列函數的計算結果稱爲

原创 Deep Learning for NLP with Pytorch-序列模型和LSTM網絡(長短記憶網絡)

原文鏈接:https://github.com/apachecn/pytorch-doc-zh/blob/master/docs/1.0/nlp_sequence_models_tutorial.m

原创 [一步步學數據結構與算法 13]-線性排序

一、線性排序算法介紹 1.線性排序算法包括桶排序、計數排序、基數排序。 2.線性排序算法的時間複雜度爲O(n)。 3.此3種排序算法都不涉及元素之間的比較操作,是非基於比較的排序算法。 4.對排序數據的要求很苛刻,重點掌握此3種排

原创 [一步步學數據結構與算法 14]-排序優化

一、如何選擇合適的排序算法? 1.排序算法一覽表 2.爲什選擇快速排序? 1)線性排序時間複雜度很低但使用場景特殊,如果要寫一個通用排序函數,不能選擇線性排序。 2)爲了兼顧任意規模數據的排序,一般會首選時間複雜度爲O(nlog