原创 Java顯示鎖
顯示鎖 Lock是顯示鎖的頂層實現的接口,所有的顯示鎖都是實現Lock接口 1、ReentrantLock ReentrantLock是對Lock的實現,提供與synchronized相同的互斥性和內存可見性。 與進入或退出同步代碼塊相同
原创 MySQL EXPLAIN詳解
MySQL EXPLAIN命令是查詢性能優化不可缺少的一部分,該文主要講解explain命令的使用及相關參數說明。 EXPLAIN Output Columns 列名 說明 id 執行編號,標識select所屬的行。如果在語句中沒子查詢或
原创 這可能是最容易上手的 NumPy教程
Oh the amazing things you can do with Numpy. NumPy is a blazing fast maths library for Python with a heavy emphasis on
原创 這可能是最透徹的Python slice 分片教程
A Quick Guide to Slicing in Python – Become a Python Ninja Slicing is an incredibly useful and powerful feature of pyth
原创 Linux查看物理CPU個數、核數、邏輯CPU個數
1、uptime命令-查詢系統運行情況 ➜ ~ uptime 14:33 up 13 days, 14:06, 3 users, load averages: 2.27 2.08 2.27 顯示的信息一次是 系統當前時間,總共運行時
原创 PHP資源列表
PHP資源列表 一個PHP資源列表,內容包括:庫、框架、模板、安全、代碼分析、日誌、第三方庫、配置工具、Web 工具、書籍、電子書、經典博文等等。 初始翻譯信息來自:《推薦!國外程序員整理的 PHP 資源大全》 該內容也可以在g
原创 鏈表排序總結
這篇文章分析一下鏈表的各種排序方法。 以下排序算法的正確性都可以在LeetCode的鏈表排序這一題檢測。本文用到的鏈表結構如下(排序算法都是傳入鏈表頭指針作爲參數,返回排序後的頭指針)struct ListNode { int val;
原创 冒泡排序
【坐在馬桶上看算法】算法2:鄰居好說話:冒泡排序 簡化版的桶排序不僅僅有上一節所遺留的問題,更要命的是:它非常浪費空間!例如需要排序數的範圍是0~2100000000之間,那你則需要申請2100000001個變量,也就是說要寫
原创 快速排序【強烈推薦】
上一節的冒泡排序可以說是我們學習第一個真正的排序算法,並且解決了桶排序浪費空間的問題,但在算法的執行效率上卻犧牲了很多,它的時間複雜度達到了O(N2)。假如我們的計算機每秒鐘可以運行10億次,那麼對1億個數進行排序,桶排序則只需要0.
原创 桶排序
最快最簡單的排序——桶排序 在我們生活的這個世界中到處都是被排序過的。站隊的時候會按照身高排序,考試的名次需要按照分數排序,網上購物的時候會按照價格排序,電子郵箱中的郵件按照時間排序……總之很多東西都需要排序,可以說排序是無處不在。現在
原创 初識推薦系統
亞馬遜的“與您瀏覽過的商品相關的推薦“、天貓首頁的”猜你喜歡“、網易雲音樂的”私人FM“等功能將一個詞帶入大家的視野:推薦系統。通過大家的使用及體會,更加感覺推薦系統的重要性。以下就是筆者對推薦系統的一些粗淺的理解,整理成文,供參考。
原创 一次Mysql死鎖排查過程的全紀錄
前言之前接觸到的數據庫死鎖,都是批量更新時加鎖順序不一致而導致的死鎖,但是上週卻遇到了一個很難理解的死鎖。藉着這個機會又重新學習了一下mysql的死鎖知識以及常見的死鎖場景。在多方調研以及和同事們的討論下終於發現了這個死鎖問題的成因,收穫
原创 機器學習-3 cost function 代價函數
1、代價函數簡介 代價函數是用來衡量假設函數(hypothesis function)的準確性,具體衡量指標是採用平方差的方式計算。例如,假設函數是 hθ(xi) = θ0 + θ1yi,那麼,代價函數就是: 其中,m是樣本數量。同時,這
原创 梯度下降算法以及與線性迴歸模型的結合闡述
梯度下降算法在機器學習領域是非常重要的一個解決問題的方法,目的就是基於歷史數據,擬合出一個理想的模型。一、梯度下降算法闡述1.1 梯度下降闡述梯度下降算法是對損失函數(cost function)進行求導,最後目標是獲得使損失函數的導數最
原创 Linux系統的內核態和用戶態
一、 Unix/Linux的體系架構 如上圖所示,從宏觀上來看,Linux操作系統的體系架構分爲用戶態和內核態(或者用戶空間和內核)。內核從本質上看是一種軟件——控制計算機的硬件資源,並提供上層應用程序運行的環境。用戶態即上層