原创 進程調度:讀/寫者問題-讀者優先(信號量方式)僞代碼

代碼參考來源:中國大學Mooc《計算機操作系統》蒲曉蓉

原创 哲學家進餐問題:阻塞第五人預防死鎖僞代碼

Program diningphilosophers; Var fork:array [0...4] of semaphone (:=1); room : semaphore (:=4); i: Integer; procedu

原创 Two Pointer:快速排序

首先解決的問題 快速排序平均時間複雜度 O(nlogn) 它的實現要先解決解決了這樣的一個問題: 對一個序列 A[1]、A[2]、……、A[n]。調整序列中元素的位置,使得 A[1](原序列的 A[1],下同)的左側所有元素都不

原创 PAT-B1035/A1089-Insert or Merge(25)

題目 根據維基百科的定義: 插入排序是迭代算法,逐一獲得輸入數據,逐步產生有序的輸出序列。每步迭代中,算法從輸入序列中取出一元素,將之插入有序序列中正確的位置。如此迭代直到全部元素有序。 歸併排序進行如下迭代操作:首先將原始序列看

原创 Two Pointer

很少有教材拿出來講,因爲Tow Pointer不像是一種算法,更像是一種編程思想 廣義上的 Two Pointer 是利用問題本身與序列的特性,使用下標 i, j 對序列進行掃描,以較低複雜度(一般是O(n))解決問題 給出以下兩

原创 Two Pointer:歸併排序

歸併排序是一種基於“歸併”思想的排序方法,本節主要介紹其中最基本的2-路歸併排序。 2-路歸併排序的原理是,將序列兩兩分組,將序列歸併爲 n/2 個組,組內單獨排序;然後將這些組再兩兩歸併,生成 n/4 個組,組內再單獨排序;以此

原创 二分:快速冪

問題 給定三個正整數 a、b、m( a<109,b<106,1<m<109),求 ab % m 的值 一般寫法 爲了防止溢出使用long,Java代碼,long爲64位,等同於 C語言 的 long long public l

原创 單進程死鎖示例

當無 IO Buffer 時有可能出現單進程死鎖 進程1 向 IO 請求數據,並告訴IO設備 返回的數據 應該送到 進程1 的哪個地址 IO設備去IO數據了,進程1就會阻塞等待,這時如果 進程1 被掛起,IO設備並不知道

原创 PAT-A1044-Shopping in Mars (25)

無代碼 題目描述 Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diamond h

原创 二分:尋找有序數列第一個滿足某條件的元素的位置

問題 有這樣的問題:如果遞增序列 A 中的元素可能重複,那麼如何對給定的欲查詢元素x,求出序列中第一個大於等於x的元素的位置L以及第一個大於x 的元素的位置R。 序列中第一個大於等於x的元素的位置 先看第一問 例如對下標從0開始、

原创 PAT-B1030/A1085-完美數列 (25分)

題目描述 給定一個正整數數列,和正整數 p,設這個數列中的最大值是 M,最小值是 m,如果 M≤mp,則稱這個數列是完美數列。 現在給定參數 p 和一些正整數,請你從中選擇儘可能多的數構成一個完美數列。 輸入格式 輸入第一行給出

原创 偏向鎖的兩次競爭

使用 synchronized() 時,括號中的對象就是我們所謂的 鎖 其實真正的 鎖 的信息,存在與括號中對象的對象頭中 對象頭的組成: 內容 說明 Mark Word 存儲對象的 Hashcode、鎖信息、分代年

原创 PaaS/IaaS/SaaS

簡單理解爲: IaaS:基礎設施即服務 某公司提供硬件,你在硬件之上自己開發,這家公司提供的就是IaaS PaaS:平臺即服務 某公司提供了一些軟件的解決方案,這家公司提供的就是PaaS SaaS:軟件即服務 某公司做好

原创 計算機本科階段網課推薦

操作系統:《計算機操作系統》蒲曉蓉 數據庫:《數據庫原理及其應用》東南大學 徐立臻 數字邏輯:《數字電路與數字系統》西安電子科技大學 任愛鋒 軟件工程: 《軟件工程》清華大學 劉強 數據結構:《數據結構》 浙江大學 陳越

原创 REST架構

文章目錄什麼是REST架構版本號資源路徑請求方式查詢參數狀態碼異常響應請求參數響應參數完整案例 什麼是REST架構 詳細的解釋在網上大家都能搜到,我就不多說了 通俗的來說,REST是一種組織軟件的風格,而不是規範,它不強制你必須使