原创 我的程序員人生路——雷軍(3)

不少人想白手起家、空手套狼,在今天的商業社會裏這是非常不現實的一件事情。我特別想問:你爲什麼不能先做能力及資源上的積累後再創業呢?如果你覺得機會難得,爲什麼不去試圖說服更多人給資源後再創業呢?     我參與創辦過了金山軟件、卓越網,作爲

原创 我的程序員人生路——雷軍(2)

《我十年的程序員生涯》系列之二:我寫BITLOK的這七年     1989年8月,大二暑假,我和王全國合作寫了我的第一個正式作品BITLOK 加密軟件,主要用來保護軟件的知識產權,防止盜版的。當時,他畢業留校了,在校辦的一家電腦銷售公司

原创 找top 10信息

本文章內容來源於《程序員面試寶典》。 題目: 有1千萬條短信,以文本文件的形式保存,一行一條,有重複。請用5分鐘時間,找出重複出現最多的前10條。 解析: 某些面試者想用數據庫的辦法來實現:首先將文本導入數據庫,再利用select語句某些

原创 快速排序算法

思路: 快速排序算法使用分治思想。算法導論上快速排序算法實現思路很清晰,現實現如下: 分解: 數組A[p..r]被劃分爲兩個(可能爲空)子數組A[p..q-1]和A[q+1..r],使得A[p..r]中的每一個元素都小於A[q],而A[q

原创 指針和引用的區別

引用相當給變量定義了別名,如同一個人的外號一樣。而指針就是地址。 非空區別:不能使用指向空值的引用。一個引用必須指向某些對象。合法性區別:使用引用前不需要測試它的合法性。相反,指針應該總是被測試,防止其爲空。可修改性:指針可以被重新賦值指

原创 我的程序人生路——雷軍

最近,和UCWEB同事討論,怎麼才能把我們的UCWEB做到極致。我說,“手機上的平臺非常多,如果想做好,需要足夠多、足夠優秀的程序員。優秀的程序員如何定義呢?首先必須熱愛寫程序,其次必須是一個完美主義者。只有這樣的人,才能把事情做得極致。

原创 今天是微軟40歲生日,圖說微軟的初創故事

今天是微軟的40歲生日。 1975年4月4日,19歲的比爾·蓋茨(Bill Gates)和22歲的保羅·艾倫(Paul Allen)在新墨西哥州阿爾伯克基市(Albuquerque)註冊了一個合夥公司,取名Micro-Soft。這

原创 經典位運算

位運算能節約內存和使用程序性能更好: 用位運算實現兩個 整型數的交換void exchange(int a, int b) { a ^= b; b ^= a; a ^= b; }用位運算實現取兩個整數的(a+b)/2的向下取整值(或

原创 最大子數組問題

題目:輸入一個整型數組,數組裏有正數也有負數。數組中一個或連續的多個整數組成一個子數組。求所有子數組的最大子數組和的最大值。 思路: 暴力法:n個元素的子數組(不爲空)個數爲n+(n-1)+...1 = 2*(n+1)*n/2個。時間複雜

原创 插入排序

思路:將待排序的關鍵字插入到已經排好序(只有一個元素也稱排好序)的記錄中 性能:穩定排序算法,時間複雜度O(n^2),空間複雜度O(1)(就是指輔助空間),有大量數據移動,越有序越好性能越好(逆序性能最差),適合少量數據排序。 void

原创 求滑動窗口最大值

題目: 給定一組序列和滑動窗口大小,找出滑動窗口中的最大值。例如,給定序列2,3,4,2,10,8,12和窗口大小3,滑動窗口最大值爲 4,4,10,10,12. 分析: 暴力法:輸入序列數爲n,窗口大小爲k。依次掃描滑動窗口求

原创 歸併排序算法

思路:把待排序序列分成相同大小的兩個部分,依次對這兩部分進行歸併排序,完畢之後再按照順序進行合併。具體思路請參考算法導論,以下實現按算法導論中思路來寫的。 性能:穩定的排序算法,時間複雜度最差、平均、最好都是O(nlogn),空間複雜度爲

原创 Vmware使用時Unrecoverable Memory Allocation Failure

在Vmware10中安裝的是Ubuntu。使用時,某一天出現如下問題: Unrecoverable Memory Allocation Failure 之後是ubuntu起不來,一直出現這樣的問題。筆者的解決辦法是,進入Ubuntu的Re

原创 heap與stack的差

本文內容來源於《程序員面試寶典》第三版。 在進行C/C++編程時,經常將操作的內存分以下幾個類別: 棧區(stack):由編譯器自動分配和釋放,存放函數的參數值、局部變量的值等。其操作方式類似於數據結構中的棧。堆區(heap):一般由程

原创 二分查找算法(折半查找算法)

原理:二分查找算法也是一種分治算法,每次將規模變成一半。 性能:它的本質是進行的二叉搜索樹查找,所以最壞情況是時間複雜度即樹高O(n) (最壞情況的查找次數logn+1向下取整)。 缺點:只能查找有序表 循環實現int binarySea