日期:2019/4/10 wpx
被問到的問題:
1.自我介紹
2.為什麼辭職?
3.懂哪些排序演算法? 冒泡、選擇、快排、插入
4.解釋一下快速排序? 根據任一被選取的資料,降比他小的資料放他左邊,大的放其右,重複這個過程。
5.這些演算法的時間複雜度? 冒泡、選擇、插入 最好情況都是o(n)快排最好o(n*log2n) 最差都是o(n2
演算法最好時間
最差時間
平均是否穩定
冒泡o(n)
o(n2
o(n2)是選擇
o(n)
o(n2
o(n2)是插入
o(n)
o(n2
o(n2)是快速
o(n*log2n)
o(n2
o(n*log2n)
否6.手寫快速排序:
using system;7.a*尋路演算法是如何實現?using system.collections.generic;
using system.linq;
using system.text;
namespace test
;sort(array, 0, array.length - 1);
console.readline();
}/**一次排序單元,完成此方法,key左邊都比key小,key右邊都比key大。
private static int sortunit(int array, int low, int high)
/*左邊都比key小,右邊都比key大。//將key放在游標當前位置。//此時low等於high */
array[low] = key;
foreach (int i in array)
\t", i);
}console.writeline();
return high;
}
/**快速排序
*@paramarry
*@return */
public static void sort(int array, int low, int high)}}
核心公式:f=g+h
f - 方塊的總移動代價
g - 開始點到當前方塊的移動代價(拓展: g = 移動代價 * 代價因子)
h - 當前方塊到結束點的預估移動代價(即為當前點到結束點的曼哈頓距離)
a星演算法還需要用到兩個列表:
開放列表- 用於記錄所有可考慮選擇的格仔
封閉列表- 用於記錄所有不再考慮的格仔
提前將尋路區域分為若干網格,計入障礙物代表網格,在確定了尋路的開始點,結束點的情況下,假定每個方塊都有乙個f值,該值代表了在當前路線下選擇走該方塊的代價。
而a星尋路的思路很簡單:從開始點,每走一步都選擇代價最小的格仔走,直到達到結束點。
a星演算法偽碼:
a、將開始點記錄為當前點p
b、將當前點p放入封閉列表
c、搜尋點p所有鄰近點,假如某鄰近點既沒有在開放列表或封閉列表裡面,則計算出該鄰近點的f值,並設父節點為p,然後將其放入開放列表
d、判斷開放列表是否已經空了,如果沒有說明在達到結束點前已經找完了所有可能的路徑點,尋路失敗,演算法結束;否則繼續。
e、從開放列表拿出乙個f值最小的點,作為尋路路徑的下一步。
f、判斷該點是否為結束點,如果是,則尋路成功,演算法結束;否則繼續。
g、將該點設為當前點p,跳回步驟c。
(此題答案複製自
U3D 遊戲開發邏輯設計
1 總體思想,高內聚,低耦合,按功能劃分,將整體功能劃分成單一功能,每個功能單獨實現。2 依據單一職責原則,每個功能只管自己的部分,總的控制類來控制各個功能中的互動類。例如 將某個單一功能用3個 檔案來控制,ui,data,service,ui只管介面,data只管存資料,service來改變dat...
U3D學習 跑酷遊戲
1.製作場景cube預製件 新建cube 製作材質球 改變其顏色等 將改變好的cube放入assets中成為預製件用於製作遠景 以相同方法製作近景 建立empty gameobject命名managers 在managers下建立empty gameobject命名skylinenearmanage...
u3d遊戲客戶端架構
主要是mvc架構,m層為資料層,兩個用途 1儲存資料 2傳送資料更新資訊 v層為檢視層,兩個用途 1接受使用者從介面上的操作 2根據m層的資料顯示相應的介面 c層為控制層,兩個用途 1處理和介面無關的 邏輯 2接受和處理網路資料 繼續 按照自己的經驗,遊戲中的mvc架構有兩種思想,1,以mvc架構為...