算法
一般情況下撩笆,算法的基本操作重復(fù)執(zhí)行的次數(shù)是模塊 n 的某一個函數(shù) f(n)夕冲,因此,算法的 時間復(fù)雜度 記做:T(n)=O(f(n))弥姻。
一個程序的空間復(fù)雜度是指運行完一個程序所需內(nèi)存的大小。一個算法所需的存儲空間用 f(n) 表示:S(n)=O(f(n))秧廉。其中 n 為問題的規(guī)模疼电,S(n)表示空間復(fù)雜度。
1. 排序
冒泡排序
簡單選擇排序
直接插入排序
折半插入排序
希爾排序
快速排序
歸并排序
堆排序
基數(shù)排序
堆排序
計數(shù)排序
各種排序的時間復(fù)雜度茫虽,空間復(fù)雜度,是否穩(wěn)定号杏,時間復(fù)雜度是否與初始序列有關(guān)?
2. 查找:二分查找主经,lower_bound, upper_bound
3. 分治與遞歸:逆序?qū)?shù),大數(shù)相加惠遏,大數(shù)相乘
4.貪婪算法
5. 動態(tài)規(guī)劃:背包問題,找零錢問題,最長公共子序列(LCS)
6. BFS渺贤,DFS,最短路徑(Dijkstra算法,F(xiàn)loyd算法)
7. 字符串匹配算法:KMP算法固棚,BM算法,Sunday算法
8. 補(bǔ)充:Top-K算法,Bitmap算法, Bloom Filter算法,一致性哈希算法知牌,8數(shù)碼問題(A*算法,B*算法,IDA*算法)
數(shù)據(jù)結(jié)構(gòu)
線性表:數(shù)組沮峡,棧(先進(jìn)后出,表末端出入或者刪除)照卦,隊列(先進(jìn)后出)式矫,鏈表特點以及應(yīng)用場景。
數(shù)組:老鼠走迷宮問題役耕,稀疏矩陣壓縮
鏈表:單鏈表逆序采转,單鏈表去重,單鏈表刪除結(jié)點(僅給出刪除結(jié)點),兩個鏈表交叉求交叉點瞬痘,判斷單鏈表是否有環(huán)以及確定環(huán)的入口結(jié)點故慈。
二叉樹:二叉樹的遍歷(遞歸,非遞歸)框全,層次遍歷察绷;
二叉樹求深度,寬度津辩;二叉樹鏡像拆撼;創(chuàng)建二叉樹;
哈夫曼樹喘沿,哈夫曼編碼闸度。BST, AVL(AVL單側(cè)旋轉(zhuǎn),雙側(cè)旋轉(zhuǎn)),紅黑樹(紅黑樹的特征)蚜印。
圖:鄰接矩陣莺禁,鄰接表,拓?fù)渑判蛘常钚∩蓸溆炊瑃rie樹
補(bǔ)充:跳躍表,hashtable
# 操作系統(tǒng)
操作系統(tǒng)加載流程忆绰?
進(jìn)程與線程的區(qū)別和聯(lián)系柒傻?
進(jìn)程的常見狀態(tài)?以及各種狀態(tài)之間的轉(zhuǎn)換條件较木?
靜態(tài)鏈接與動態(tài)鏈接的優(yōu)缺點红符?
死鎖?死鎖產(chǎn)生的條件?預(yù)防预侯、避免死鎖的方法致开?
進(jìn)程間通信的方式?各種方式的區(qū)別以及應(yīng)用場景萎馅?
經(jīng)典同步問題解法:生產(chǎn)者與消費者問題双戳,哲學(xué)家進(jìn)餐問題,讀者寫者問題糜芳。
線程同步的方式飒货?各種方式的區(qū)別?
虛擬內(nèi)存峭竣?使用虛擬內(nèi)存的優(yōu)點塘辅?
Linux下進(jìn)程的內(nèi)存布局?
頁面置換算法皆撩?LRU Cache算法扣墩?
Linux IO多路復(fù)用的機(jī)制:select,poll,epoll。三種復(fù)用機(jī)制的區(qū)別與聯(lián)系扛吞?
計算機(jī)網(wǎng)絡(luò)
OSI 7層網(wǎng)絡(luò)模型中各層的名稱及其作用呻惕?
TCP/IP 4層網(wǎng)絡(luò)模型名稱及其作用?
OSI 7層網(wǎng)絡(luò)中各層的常見協(xié)議以及協(xié)議作用滥比?
OSI網(wǎng)絡(luò)模型中工作在各個層次的物理設(shè)備以及其作用亚脆?
IP層功能?如何用int型變量保存一個IPv4地址盲泛?
TCP協(xié)議(重點):TCP3次握手濒持,4次揮手詳細(xì)過程。TCP滑動窗口查乒,擁塞控制弥喉,流量控制原理。TCP 建立玛迄、斷開連接過程中13中狀態(tài)以及各種狀態(tài)之間的轉(zhuǎn)換條件由境? TCP粘包問題?如何解決蓖议?
UDP協(xié)議:頭信息虏杰?使用場景?如何使用UDP建立可靠連接勒虾?
http協(xié)議:各個版本的區(qū)別纺阔?http請求頭,響應(yīng)頭常用屬性修然?常用狀態(tài)碼及其含義笛钝?
socket編程:服務(wù)端质况,客戶端建立TCP連接調(diào)用那些函數(shù)?分別對應(yīng)什么狀態(tài)玻靡?
Linux 常用網(wǎng)絡(luò)命令的原理:ping, traceroute
瀏覽器中點擊一個超鏈接到顯示對應(yīng)頁面的全過程结榄?
DNS的作用?什么時候使用TCP?什么時候使用UDP?
# 數(shù)據(jù)庫
MySQL中MyISAM與InnoDB的區(qū)別囤捻?
MySQL中索引內(nèi)部實現(xiàn)是什么臼朗?MyISAM和InnoDB中使用的B+樹有什么區(qū)別?B樹和B+樹的區(qū)別蝎土?
SQL常用查詢語句的使用视哑?各種連接(外連接,內(nèi)連接誊涯,全連接)的區(qū)別挡毅?
數(shù)據(jù)庫范式?1,2,3醋拧,BCNF,4, 5
事務(wù)慷嗜?事務(wù)的特點淀弹?事務(wù)的四個隔離級別丹壕,各個級別解決的問題?
索引薇溃?適合創(chuàng)建索引的條件菌赖?不適合創(chuàng)建索引的條件?
索引優(yōu)化策略沐序?五個優(yōu)化級別
存儲過程琉用?
觸發(fā)器?
日志