原创 一億數據獲取最大值的前100位

兩種思路: 1. 根據快速排序劃分的思想  a. 假設數組爲 array[N] (N = 1 億),首先利用quicksort的原理把array分成兩個部分,左邊部分比 array[N - 1] (array中的最後一個值,即pivot

原创 ANSIC標準6個預定義宏

使用一些宏跟蹤調試  ANSIC標準定義了以下6種可供C語言使用的預定義宏: __LINE__ 在源代碼中插入當前源代碼行號 __FILE__

原创 面試感悟之面對新知識

昨天下午有個面試,讓我修改一個python的程序,搞了四個小時才搞定。因爲學的C++,python也只是瞭解基本語法。所以450行的python代碼,一下子懵了。現在回想起來也沒有那麼難,只是有很多東西沒有接觸過,在網上都能找到答案,最大

原创 Linux文件存儲結構,包括目錄項、inode、數據塊

大部分的Linux文件系統(如ext2、ext3)規定,一個文件由目錄項、inode和數據塊組成: 目錄項:包括文件名和inode節點號。Inode

原创 00-C++工程師常見面試大綱彙總

1.C/C++ #define和const區別七大算法(冒泡,選擇,插入,希爾,快排,歸併,堆排),重點:冒泡和快排函數實現:strcpy, 鏈表(增刪改查)(單向,雙向),重點:單向鏈表增和刪,還有鏈表逆序設計模式(2年工作經驗必須有

原创 C語言浮點數存儲方式

對於浮點類型的數據採用單精度類型(float)和雙精度類型(double)來存儲,float數據佔用 32bit,double數據佔用 64bit.其實不論是float類型還是double類型,在計算機內存中的存儲方式都是遵從IEEE的規

原创 C語言判斷兩個浮點數是否相等

我的一篇文章講到C語言中浮點數在內存是如何存儲的。 符點數是採用二進制科學計數法來進行存儲的,因此,絕大多數的數在計算機中是不能 精確 表示的。 如果兩個數a b都是常數賦值,這樣比較,不會有問題,如:double a=5.3,b=5.

原创 怎麼方便打開win應用程序和常用文件夾?

1.將各個應用程序快捷方式放一個文件夾(假設取名爲a)中, 將常用文件夾的快捷方式放在另一個文件夾(取名爲b)中 2.將以上兩個文件夾放在一個文件(shortcuts)中 3.最後將shortcuts文件夾的路徑, 放在環境變

原创 C/C++之strcpy實現

考查知識點有五處,具體如下: //返回值char*,實現鏈式編程; 用const修飾src,禁止對源字符串修改 char * MyStrcpy(char *des, const char *src) { if (NULL == des

原创 Linux系統的進程通常有以下幾種狀態:

  R(TASK_RUNNING),可執行狀態。 只有在該狀態的進程纔可能在CPU上運行,同一時刻可能有多個進程處於可執行狀態。 S(TASK_INTERRUPTIBLE),可中斷的睡眠狀態。 處於這個狀態的進程因爲等待某事件的發生(比如

原创 ubuntu12.04鏡像安裝

在安裝前需要準備.iso文件(12.04) 1.文件 -> 新建虛擬機 2.下一步: 3.給虛擬機取個名字 4.未截圖,一律默認點下一步   5.處理器數量選擇2 6.虛擬機內存 2G   7.設置安裝路徑(不要裝在C盤

原创 C/C++之#define和const區別

(1) 編譯器處理方式不同   define宏是在預處理階段展開。   const常量是編譯運行階段使用。 (2) 類型和安全檢查不同   define宏沒有類型,不做任何類型檢查,僅僅是展開。   const常量有具體的類型

原创 遞歸逆序打印字符串

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void PrintStr(char str[]) { if (NULL == str)

原创 C/C++之for(;;)與while(1)的區別

一般for(;;)性能更優 for(;;)  {}  這兩個;; 空語句,編譯器一般會優掉的,直接進入死循環 while(1)  {}  每循環一次都要判斷常量1是不是等於零,在這裏while比for多做了這點事 點贊 1

原创 求數組中第k大的數的位置

利用插入排序的思想,求解:#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.