原创 linux殭屍進程產生的原因以及如何避免產生殭屍進程
給進程設置殭屍狀態的目的是維護子進程的信息,以便父進程在以後某個時間獲取。這些信息包括子進程的進程ID、終止狀態以及資源利用信息(CPU時間,內存使用量等等)。如果一個進程終止,而該進程有子進程處於殭屍狀態,那麼它的所有殭屍子進程的父進
原创 多維數組詳解
一、數組的邏輯結構 數組作爲一種數據結構其特點是結構中的元素本身可以是具有某種結構的數據,但屬於同一數據類型。 比如:一維數組可以看作一個線性表; 二維數組可以看作“數據元素是
原创 如何學習機器學習的一點心得
以下內容轉自:http://blog.csdn.net/lcjpure/article/details/8069704 結合自己的學習經歷,總結一下如何學習機器學習。我自己的學習過程其實是非常混亂和痛苦的,一個人瞎搞現在也不知道入沒入
原创 計算機經典書籍電子書合集(適合計算機學生學習以及程序員筆試、面試)
2樓 JAVA篇 此篇收錄:.《Java 2 核心技術》、2.《Java編程語言》、3.《Effective Java》、4.《Java解惑》、5.《Java編程思想》 3樓 C篇 此篇收錄:1.《C程序設計語言》、2.
原创 【分治法】最接近點對問題
問題場景:在應用中,常用諸如點、圓等簡單的幾何對象代表現實世界中的實體。在涉及這些幾何對象的問題中,常需要了解其鄰域中其他幾何對象的信息。例如,在空中交通控制問題中,若將飛機作爲空間中移動的一個點來看待,則具有最大碰撞危險的2架飛機,就
原创 C++的函數重載
——每個現象後面都隱藏一個本質,關鍵在於我們是否去挖掘 寫在前面: 函數重載的重要性不言而明,但是你知道C++中函數重載是如何實現的呢(雖然本文談的是C++中函數重載的實現,但我想其它語言也是類似的)?這個可以分解爲下面兩個問題 1、聲
原创 堆和棧的區別
堆和棧究竟有什麼區別? 主要的區別由以下幾點: 1、管理方式不同; 2、空間大小不同; 3、能否產生碎片不同; 4、生長方向不同; 5、分配方式不同; 6、分配效率不同; 管
原创 C/C++程序內存佈局
爲什麼需要知道C/C++的內存佈局和在哪可以可以找到想要的數據?知道內存佈局對調試程序非常有幫助,可以知道程序執行時,到底做了什麼,有助於寫出乾淨的代碼。本文的主要內容如下: 源文件轉換爲可執行文件可執行程序組成及內存佈局數據存儲類別一
原创 C語言的編譯鏈接過程詳解
學過C語言的人都應該知道,我們所編輯的C語言程序是不能直接放到機器上運行的,它只不過是一個帶".c"後綴的文件(也稱爲源代碼)而已,需要經過一定的處理才能轉換成機器上可運行的可執行文件。我們將對C語言的這種處理過程稱爲編譯與鏈接。 編
原创 STL容器:set/map/multiset/multimap 與hash_set/hash_map/hash_multiset/hash_multimap
本文第一部分、從set/map談到hashtable/hash_map/hash_set,簡要介紹下set/map/multiset/multimap,及hash_set/hash_map/hash_multiset/hash_mult
原创 Bloom Filter概念和原理
Bloom Filter概念和原理 焦萌 2007年1月27日 Bloom Filter是一種空間效率很高的隨機數據結構,它利用位數組很簡潔地表示一個集合,並能判斷一個元素是否屬於這個集合。Bloom Filter的這種高效是有一定代
原创 細說Cookie
轉載自http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html 閱讀目錄 開始Cookie 概述Cookie的寫、讀過程使用Cookie保存複雜對象Js中讀寫Coo
原创 堆排序及其分析
前言 記得在學習數據結構的時候一味的想用代碼實現算法,重視的是寫出來的代碼有一個正確的輸入,然後有一個正確的輸出,那麼就很滿足了。從網上看了許多的代碼,看了之後貌似懂了,自己寫完之後也正確了,但是不久之後就忘了,因爲大腦在回憶的時候,只依
原创 C語言中volatile關鍵字的作用
一.前言 1.編譯器優化介紹: 由於內存訪問速度遠不及CPU處理速度,爲提高機器整體性能,在硬件上引入硬件高速緩存Cache,加速對內存的訪問。另外在現代CPU中指令的執行並不一定嚴格按照順序執行,沒有相關性的指令可以亂序執行,以充分
原创 C語言通配符
%a,%A 讀入一個浮點值(僅C99有效) %c 讀入一個字符 %d 讀入十進制整數 %i 讀入十進制,八進制,十六進制整數 %o 讀入八進制整數 %x,%X 讀入十六進制整數 %s 讀入一個字符串,遇