原创 UNIX網絡編程卷二 筆記 Posix消息隊列

第2章 Posix消息隊列 2.1 概述 每個消息都是一個有優先級的記錄,進程寫入消息前,不需要有其它進程在等待消息。消息隊列具有隨內核的持續性。 Posix消息隊列與System V消息隊列的兩個主要區別: 1. Posix讀返回最高

原创 scanf和printf處理64位整型變量

昨天做編程馬拉松21日的題目時,被它的各種求模給弄的快瘋掉了,總是弄不對餘數,後來想起來用long long,查了半天,找到了scanf和printf處理long long的格式,記錄一下: long long x; scanf("%

原创 Linux中判斷文件是否存在

用access函數 access的第一個參數是文件路徑,第二個參數是測試的模式。常用的有R_OK:測試讀權限,W_OK:測試寫權限,X_OK:測試執行權限,F_OK:測試文件是否存在;

原创 校招季——操作系統的存儲管理

                                                      第3章  存儲管理 現在的存儲器體系爲分層存儲器體系,操作系統的工作是將這個存儲體系抽象爲一個有用的模型並進行管理。 3.1 

原创 校招季——編程題目(12-13)

12.       快速求冪(題目047) 題目: 給定兩個整數base和exp(非負整數),求base的exp次冪,要求O(lgN)的時間複雜度。 解答: int FastPow(int base, int exp) { i

原创 校招季——Python筆記二

二.         列表和元組 1.      有六種內建序列:列表、元組、字符串、Unicode字符串、buffer對象和xrange對象。 2.      列表可以修改,元組不可以。一般可用列表代替元組,除了用作字典的鍵。列表用[]

原创 Using smart pointers for class members

http://stackoverflow.com/questions/15648844/using-smart-pointers-for-class-members Question: I'm havingtrouble understa

原创 校招季——編程題目(73) 迴文數

73.       迴文數 題目: 1.      測試一個數是不是迴文數。 2.      逆轉一個數的二進制表示。 解答: 對於問題1,方法1: 用itoa將這個數轉換成字符串,再測試這個字符串是不是迴文字符串。 方法2: 用兩個ma

原创 校招季——編程題目(10-11)

10.倒轉數組 題目: 將長度爲n的數組倒轉。 解答: void Reverse(int *data, int n) { int i, j; for(i = 0, j = n - 1; i < j; ++

原创 校招季——編程題目(14) 逆序數

14. 逆序數(題目043) 題目: 計算一個全由大寫字母組成的字符串的逆序數。 解答: 求逆序數和排序的思路是類似的,穩定的排序算法都可以用來計算逆序數。 方法1: 最直接的方法,採用冒泡排序和插入排序的思路,一共需要遍歷(n-1)*(

原创 校招季——編程題目(15、16) 約瑟夫問題 最大子矩陣和

15.       約瑟夫問題(題目042) 題目: n個人圍成一圈,從第一個開始報數,第m個將被殺掉,最後剩下一個,其餘人都將被殺掉。求最後剩下的人的序號。例如n=6,m=5,被殺掉的人的序號爲5,4,6,2,3。最後剩下1號。 解答:

原创 校招季——進程與線程的概念

2013/08/15,第四天。昨天總結完了《現代操作系統》的前幾章,後面的部分看了一遍,實在不想記筆記了,太雜了。   第2章  進程與線程 2.1  進程 2.1.1 進程模型 一個進程就是一個正在執

原创 校招季——編程題目(8-9)

2013/08/18,後天就回本部準備校招了,爭取今天能將題目總結到70題。 8.      最大子序列和 題目: 輸入一個長度爲n的序列,其中元素有正有負,求其中序列和最大的連續子序列,如果不存在序列和爲正數的連續子序列,返回0。 解答

原创 校招季——Python筆記四

四.         字典 1.      字典是由鍵值對組成的,鍵和值間用冒號隔開,項之間用逗號隔開,整個字典由大括號表示。 2.      字典可以用dict創建,需要一個映射關係的參數(其他字典或包含多個元組的序列),也可以用關鍵字

原创 校招季——編程題目(3-5)

2013/08/13,秋季校招準備工作第二天。 3.      打亂數組 題目: 將一個長度爲n的數組隨機打亂。 解答: 思路:將數組內的每個元素與它所在位置到結尾之間的一個隨機位置的元素交換: void Shuffle(int *