原创 TopK問題

top k就是求解一個數字隊列前k大的問題,在面試中是一個非常常見的問題。 快排思想: #include<bits/stdc++.h> using namespace std; void QS(int a[], int l,

原创 進程和線程的區別

進程 進程是資源(CPU、內存等)分配的基本單位,它是程序執行時的一個實例。程序運行時系統就會創建一個進程,併爲它分配資源,然後把該進程放入進程就緒隊列,進程調度器選中它的時候就會爲它分配CPU時間,程序開始真正運行。 線程 線程

原创 圖的DFS和BFS

BFS BFS(廣度優先算法)屬於一種盲目搜尋法,目的是系統地展開並檢查圖中的所有節點,以找尋結果。換句話說,它並不考慮結果的可能位置,徹底地搜索整張圖,直到找到結果爲止。Dijkstra單源最短路徑算法和Prim最小生成樹算法都

原创 高級數據結構——B*算法(Branch Star)

原文鏈接:https://www.iteye.com/blog/qinysong-678941 算法原理 前置定義: 探索節點: 爲了敘述方便,我們定義在尋路過程中向前探索的節點(地

原创 Unity的優化策略

原文鏈接:https://mp.weixin.qq.com/s?__biz=MzU5MjQ1NTEwOA==&mid=2247500903&idx=1&sn=68a7b000cc48db66da21

原创 Dijkstra(迪傑斯特拉)算法

原文鏈接:https://www.jianshu.com/p/ff6db00ad866 Dijkstra 迪傑斯特拉(Dijkstra)算法是典型最短路徑算法,用於計算一個節點到其他節點

原创 阻塞I/O,非阻塞I/O以及I/O多路複用

原文鏈接:https://www.cnblogs.com/skiler/p/6852493.html 一、阻塞I/O 首先,要從你常用的IO操作談起,比如read和write,通常IO操

原创 C++11 智能指針

https://www.cnblogs.com/KillerAery/p/9096558.html 智能指針的作用 在C++的程序設計中,堆的使用是很頻繁的,並且堆的申請和釋放都是由程序員來管理。雖然這樣可以提升程序的效率,但是難

原创 TCP的流量控制(滑動窗口)及擁塞控制

流量控制 什麼是流量控制 防止發送方發的太快,耗盡接收方的資源,從而使接收方來不及處理 流量控制的一些知識點 (1)接收端抑制發送端的依據:接收端緩衝區的大小 (2)流量控制的目標是接收端,是怕接收端來不及處理 (3)流量控

原创 KCP協議

KCP簡介 KCP是一個快速可靠協議,純算法實現,並不負責底層協議的收發,需要使用者自己定義下層數據包的發送方式,以callback的方式提供給KCP。 KCP存在的價值 TCP的可靠和無私讓TCP開發變得簡單,同時它的設計也導致

原创 C++類型轉換

一般來說比較普遍的程序員都會使用C風格的類型轉換。比如: float f=1.0; int a=(int)f 這樣的習慣可以成功轉型,但是會有不少缺點。 如果你把一個指向const對象的指針轉換成指向非const對象的指針,把一

原创 C++求2進制最後一位

#include <bits/stdc++.h> using namespace std; void main() { int i = 5, j = 0; while (i) { j = i & 1; i = i

原创 C++多態以及靜態綁定和動態綁定

什麼是多態? 簡單來說,就是不同繼承關係的派生類對象,去調用同一個函數,產生不同的行爲。 多態在遊戲中的應用場合? 比如有一個遊戲,裏面有不同的怪物,每個怪物都可以攻擊,走路,idel。在編寫怪物邏輯的時候,就可以先編寫一個Cr

原创 HTTP與FTP

HTTP(HyperText Transfer Protocal)超文本傳輸協議 它是Web的核心,面向網頁 通過交換HTTP報文進行會話 HTTP協議由兩部分程序實現:一個客戶機程序和一個服務器程序,它們運行在不同的端系統中,通

原创 136. 只出現一次的數字

給定一個非空整數數組,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示