關於軟體演算法的問題?

時間 2021-06-07 03:30:46

1樓:qin meng

計算量少是啥概念?O(n)?O(1)?

簡單想想的話用數字當索引字母個數當key建個表,根據字母個數把表排個序,建表複雜度O(n),一般排序O(nLogn)的。之後根據字母個數用折半查詢,O(Logn)。所以綜合起來看如果每次都建表並排序時間複雜度O(nLogn),排好後儲存下次可以用的話那麼平均就是O(Logn)。

如果覺得這不夠好,可以第二步不排序,直接在建乙個hash表,還是字母個數當key值,這樣建hash表平均可以做到O(n),查詢的時候就快了,平均可以O(1)。這樣綜合下來每次都建hash表時間複雜度是O(n),表建好後留著查詢用平均就是O(1)。

另外,幾千個數字,幾百個字母,這種計算量如果不是用小霸王學習機來算的話,用不著糾結快慢吧。。。這是課後題麼?

2樓:kqwyf

對每個數字開個32位int搞位運算吧。。一共才26個字母。。每個數字開2個int,乙個記錄當前這個數字匹配了幾個字母,乙個用位模式表示當前匹配了哪些字母。

關於ACM中的程式設計演算法問題 ?

int rampNum int a,int n int s 0 a 0 0 for int i 1 i n i for int j a i 1 j bhuztez的思路,寫出了c 版本的,這裡假設陣列中下標為1的元素為最高位以方便處理,combinationNum為計算組合數的函式。 inspire...

關於象棋軟體的思考的問題,百思不解?

Alpha Beta搜尋,是先廣度全展開,再挑乙個最好分支深度前進一,再重複這個動作,直到第N層,假設是9層,這時候得到了9層區域性資料Best,這個Best資料很重要,是剪支的依據 再把8層的第二個分支逐個展開,如果比Best好,那麼替換這個Best,注意,只有9層才會產生分數,其餘都是過程,只要...

職業選擇問題,演算法工程師 vs 軟體工程師

同樣有此困惑,無奈只好選擇coding了,可以見我這個問題 軟體行業求職方面的困惑,高深演算法還是Coding?程式設計 軟體開發也有好多好多崗位啊,沒法一概而論。選了軟體開發的壞處是,離科學很遠,數學什麼的基本就跟你沒什麼關係了。你就變成乙個工匠,乙個手藝人。好處是,現在網際網路發展快,程式設計師...