Time of Update: 2018-12-05
網路載量平衡原理與演算法 [Winmag]作者: Slhhacker1. 網路Server Load Balancer 一般情況下,叢集的服務節點可以提供諸如處理器負載,應用系統負載、活躍使用者數、可用的網路通訊協定緩衝以及其他的資源資訊。資訊通過高效的訊息機制傳給平衡器,平衡器監視所有處理節點的狀態,主動決定下個任務傳給誰。平衡器可以是單個裝置,也可以使一組平行或樹狀分布的裝置。 本質上講,網路Server Load
Time of Update: 2018-12-05
一,與集合和字典的區別:集合和字典(線性表,二叉搜尋樹,AVL樹,B樹)中元素與關鍵碼沒有直接的對應的關係,而雜湊表中元素與關鍵碼有對應的關係,而這層關係通過雜湊函數橋接,通過關鍵碼映射到表中某個地址位置來搜尋元素的方法速率更高,比較次數很少。二,散列1.散列的性質:.散列函數是一個壓縮映像函數,關鍵碼集合比散列表地址集合大得多。不同關鍵碼的映射後必定會出現在同一個散列地址上,因而出現衝突。而處理衝突則必定降低搜尋效率,所以能夠造出一個地址分布均勻的散列尤為重要,也就是映射得到的地址出現的機率相
Time of Update: 2018-12-05
抽象原廠模式解釋: (此段模式分析有參考其他博文 因為已忘出去,故而沒有標出連結地址)抽象原廠模式(Abstact Factory Pattern)是所有形態的原廠模式中最為抽象和最其一般性的。抽象原廠模式可以向用戶端提供一個介面,使得用戶端在不必指定產品的具體類型的情況下,能夠建立多個產品族的產品對象。抽象工廠中方法對應產品結構,具體工廠對應產品族英文定義為:Provide an interface forcreating families of related or dependent
Time of Update: 2018-12-05
問題:之前有裝有信的n個信封,現在將信封中信取出放在非原信封內,問信封錯排的種類數。遞迴思路:總共F(n)種排法,1.前面F(n-1)個信件錯排符合要求,現將第n封原封未動的信取出與前面n-1中任意一個交換信,仍符合要求,即有(n-1)F(n-1)種方法2.前面F(n-1)個信件有一個原封未動,即前面n-2個信件錯排符合要求,此時將第n封信件與前n-1中的唯一的原封未動的信錯排,既符合要求,即有(n-1)F(n-2)種方法因而 F(n)=(n-1)F(n-1)+(n-1)F(n-2);
Time of Update: 2018-12-05
一.快速排序思想:1.以數組中第一個數作為被比較數,並命名為基數(該數暫時為基數,因後面的比較,基數會變化),然後從該基數起開始往後順序遍曆數組,(注意遍曆該數組時,所有數都與該第一個數相比較)2.遍曆時,取出該數與被比較數(即第一個數,此時也是基數)相比較,如果該數比被比較數小(該案例用快排使之按從小到大順序排列),則將該數與基數緊挨著的後面的數交換,交換後再將該數設為基數(實質是將基數往後挪了一位),以此類推,直至遍曆完該數組,此時將基數與被比較熟(即第一個數)交換。此時實現的功能為:之前所
Time of Update: 2018-12-05
1、 概述並查集(Disjoint set或者Union-find set)是一種樹型的資料結構,常用於處理一些不相交集合(Disjoint Sets)的合并及查詢問題。a.一個集合是一棵樹,b.根節點下標代表集合名稱,根節點的父為為負數,絕對值表示集合中的元素個數。並查集的重要知識點:a.加權規則,即並兩個沒有交集的集合,元素個數少的集合加到元素個數多的集合裡 b.並集合後,為了改進樹的效能,使用摺疊規則來“壓縮路徑”
Time of Update: 2018-12-05
<<Unicode與GBK互轉>> Tags: encoding,c1. gb2312規定: 一個小於127的字元的意義與原來相同, 但兩個大於127的字元連在一起時, 就表示一個漢字, 前面的一個位元組(他稱之為高位元組)從0xA1用到 0xF7, 後面一個位元組(低位元組)從0xA1到0xFE, 這樣我們就可以組合出大約7000多個簡體漢字了. 在這些編碼裡, 我們還把數學符號,羅馬希臘的
Time of Update: 2018-12-05
一.演算法思想:插入排序演算法思想:將插入的數與有序的數組各數比較,按照大小關係插入,保持原有大小順序。(按照數組尾到數組頭的順序遍曆)而二分法插入:首先取出原有序中間數與新插的數比較,然後插入新數大小包含於其中的一半數組,再次取該數組中間數,如此重複下去,直至最後得到數組個數為一,將最後得到的數之後的數後移,然後將新插入的數放在該索引處。二.類比源碼:#include<iostream>using namespace std;//直接插入排序int arr[15]={11,22,4
Time of Update: 2018-12-05
一. 0.0.0.0 嚴格說來, 0.0.0.0已經不是一個真正意義上的IP地址了. 它表示的是這樣一個集合: 所有不清楚的主機和目的網路. 這裡的"不清楚 "是指在原生路由表裡沒有特定條 目指明如何到達. 對本機來說, 它就是一個"收容所", 所有不認識的"三無"人員, 一 律送進去. 如果你在網路設定中設定了預設網關, 那麼Windows系統會自動產生一個 目的地址為0.0.0.0的預設路由. 二. 255.255.255.255 限制廣播位址.
Time of Update: 2018-12-05
1.建立二叉樹節點建立順序:首先添加根節點,然後添加左孩子,再添加左孩子的左孩子(遞迴原因導致以左或右為先,該案例先添加左孩子),以此類推,當不再添加左孩子時,然後添加右孩子.當右孩子不添加時,然後函數回調到父節點是否添加右孩子,以此類推,建立二叉樹。#include<iostream>#include<string>using namespace std;struct Node{ int value; Node *leftchild; Node
Time of Update: 2018-12-05
演算法思路:二元堆積各節點用數組標示是線性,父節點與其左孩子的索引關係:leftchild=2*parient+1;當高層數值較大的節點往下移動時,移動後還要判斷該節點數值與左右孩子節點的大小關係,因而代碼中需要再嵌套一個迴圈保證之後大小關係。#include<iostream>using namespace std;//最小堆排序int heap[]={53,17,78,9,45,65,87,23};void show(){for(int i=0;i<8;i++){cout&
Time of Update: 2018-12-05
#include<stdio.h>void perm(int *array,int a,int b);void swap(int *a,int *b);int main(){int array[4]={1,3,5,6};perm(array,0,3);int i;for(i=0;i<=3;i++){printf("%d ",array[i]); }return 1;}void perm(int *array,int a,int b){if(a==b){int
Time of Update: 2018-12-05
<<用簡單線性插值實現有趣的曲線與動畫>> Tags: opengl, 3d, c, linux1. 要實現什麼? 為了更好說明, 先看一下我們要實現的是什麼, 既然是圖形的效效果, 自然看圖最能 說明問題, 清楚明了. 1) 要畫出的曲線: ./bmp_line/sshot_20.bmp
Time of Update: 2018-12-05
#include<iostream>#include<vector>using namespace std;//直接插入排序int arr[10]={2,3,5,7,9,0,1,4,5,6};int list [10];void insertSort(int ar[],int size){for(int i=0;i<size;i++){list[i]=ar[i];for(int j=i-1;j>=0;j--){ if(list[j]<=ar[i]){
Time of Update: 2018-12-05
<<convert notes>> Tags: linux,linux-tool,ps,photo1. Create an animated GIF on linux with `convert`// 把目前的目錄下的所有bmp檔案合成一個gif圖片動畫, 每幀間隔0ms, 重複播放.// -delay n 遲延n*10毫秒// -loop n 播放n輪, 0表示不斷地重複播放$
Time of Update: 2018-12-05
問題描述:n個方格,用三種不同顏色塗色每個格子,每個格子圖一色,要求相鄰以及首尾顏色也不同,求所有圖色方法總數。思路:F(n)種方法符合要求,遞迴思想:1. 前面n-1個格子塗色符合要求,即有F(n-1)種方法,則第n個格圖法只有一種。2.前面n-1個格子塗色不合格,僅當圖第n個格合格,這表明前n-1個格的第n-1格與第1個格顏色相同,則第n個格圖法有兩種。因而F(n)=F(n-1)+2*F(n-1);
Time of Update: 2018-12-05
一,線性數組可以看成一個二差堆,堆中父節點與左孩子的關鍵碼關係為:left=parent*2+1;堆排序思想:每次迴圈從二元堆積中將最大的元素shiftup上移至根節點,再將根節點與最後對末尾的元素交換。撇開末尾元素,如此再繼續找出下一個最大元素,將此最大元素與此末尾元素交換。依此重複尋找最大元素,然後交換。1.堆排序與插入排序思想有點類似。2.時間複雜度為nlog2(n);int heap[]={53,17,78,9,45,65,87,23};void swap(int *a,int *b){
Time of Update: 2018-12-05
歸併排序思想:先分後合,每次合并的子數組序列是有序的時間複雜度:O(nlog2n),空間代價為O(n)代碼如下:int a[10]={1,23,4,5,7,9,0,5,3,26},b[10]={0};void merge(const int left,const int mid,const int right){int s1=left;int s2=mid;int
Time of Update: 2018-12-05
一.區別指標函數重點強調函數,而函數指標重點強調指標。代碼舉例如下:#include<stdio.h>int *(*fun)();//函數指標int *func(){ //指標函數int a=2;return &a;}void (*func11)();void func1(){ printf("func1\n");}int *(*func22)(int a);int *func2(int b){int t=b;return &t;}int main(){int *
Time of Update: 2018-12-05
一.程式中有兩種庫:1.lib 靜態連結庫,在編譯時間載入,該檔案包含函數所在的DLL檔案以及函數所對應的地址等資訊。 說白了lib裡放的是dll中對應函數地址等資訊的索引。2. dll 動態連結程式庫,程式運行時載入,該檔案包含函數的具體實現代碼和資料。動態連結時,需要lib.以及dll共同協作 二. 使用lib需注意兩個檔案:(1).h標頭檔,包含 lib中說明輸出的類或符號原型或資料結構。應用程式調用lib時,需要將該檔案包含入應用程式的源檔案中。(2).LIB檔案,略。使