原创 歸併排序算法理解

歸併排序算法的思想:把一個序列拆分成一對序列,每個序列再次拆分,這樣經過多次拆分,拆分成多個小序列,每個序列有2個以內的元素然後排序,再逐次把1對有序序列合併爲一個有序序列,最後合併爲一個完整的有序序列。 void merge(int *

原创 二叉排序樹的創建,插入,遍歷,節點刪除,整個刪除的封裝

#include<iostream> using namespace std; typedef struct BSTree { int key; struct BSTree *LChild , *RChild; }BSTree;

原创 floyd算法求多源最短路徑

關於floyd三重循環的問題可能有人有疑問:爲什麼k要放在在外層循環,這個牽扯到動態規劃的問題,狀態轉移方程爲dist[k][a][b] = min(dist[k-1][a][k] + dist[k-1][k][b] , dist[k-1

原创 js通過canvas實現動畫效果

有個要注意的點,就是canvas標籤本身自帶width與height屬性,設置此屬性可以直接更改canvas座標系的寬與高,而在css裏設置寬高,只是把canvas座標系拉伸了,座標值不變,顯示出來的圖像也都被拉伸了。 <html> <

原创 二叉樹的存儲,創建,以及四種遍歷,刪除

#include <iostream>; #include <queue>; using namespace std; typedef char DATA; typedef struct BitTree { DATA data; Bi

原创 猴子喫香蕉過河問題分析與擴展

第一次接觸這個題目是大學找工作時候的一次筆試,題幹意思是說有一座橋長50m,橋的一端放着一堆香蕉總共100根,還有一隻猴子,這隻猴子想要過橋,但是每走1m就要喫一根香蕉(每移動1m要喫一根香蕉,否則餓死,就是這麼矯情),並且猴子身上最多可

原创 快速排序算法

快速排序算法的思想就是從數字序列中隨便挑一個數,然後比跟剩餘元素逐個比較,比它小的放在它的左邊,比它大的放在它右邊,然後這個數的位置就坐定了,然後分別

原创 關於礦泉水空瓶子和瓶蓋兌換礦泉水的問題解決算法

問題大概描述:礦泉水1塊錢1瓶,喝完以後,2個空瓶子可以換一瓶新礦泉水,4個瓶蓋也可以換一瓶新礦泉水。問:花10塊錢最後最多能得多少瓶礦泉水。 錢不是問題,主要是考慮剛開始能買多少瓶礦泉水,這裏是10瓶,既然寫程序,就n瓶吧。 大致思路如

原创 漢諾塔問題的解決思路及算法

關於漢諾塔問題,好多時候當時理解了過段時間可能又會忘,其實這個代碼很簡單,主要還是分治思想理解不夠透徹。 架設3根柱子分別爲A、B、C,圓盤數目爲n。 1:如果A有一個圓盤,則直接移動至c。 2:如果A有2個圓盤,則A->B,A->C,B

原创 KMP算法原始版與優化

void GetNext(string pattern,int* &next) { int length = pattern.length();    //*前後綴相等的長度越大意味着在該位置回退回去的距離越短,效率越低,next數組內

原创 dijkstra算法求單源最短路徑

#define MAXINT 0xfff #define MAXSIZE 1000 #include<iostream> #include<string> using namespace std; int amapBorder[MAXS

原创 10進制轉2進制問題

其實在計算機的邏輯裏,只有2進制,10進制轉2進制的意思是把計算機展示給我們的10進制(數字)轉換爲 2進制(字符串)。 既然寫轉換,就寫個優雅簡潔的代碼,號稱史上最簡(賤)。void ten2two(int num) { while(

原创 圖的存儲(鄰接表)創建與深度優先、廣度優先搜索

#pragma once #include<iostream> #include<queue> using namespace std; #define Vnum 10 typedef int DATA; /*鄰接表存儲圖*/ typed

原创 mac npm install gulp失敗

報錯如下: gyp ERR! configure error  gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/gul

原创 isNaN()的應用

之前一陣對這個函數有誤解,以爲它可以鑑定一個變量或者值是不是數字(是則返回false,不是返回true),今天親自試了一下才明白,原來它是鑑定一個變量或值是不是可以被轉換爲數字(是則返回false,不是則返回true)。所以很多時候千萬不