關於演算法的一些想法 (轉)
關於演算法的一些想法
演算法是的靈魂。不可想象,沒有演算法的會是一個高水平的程式。窗體的形狀、大小涉及到演算法;自身以及與其它控制元件的諸多關係需要計算;字串的查詢、擷取和替換更離不開它了……總之,從小到一個按鈕的安放位置,大到……(哪裡呀?我不知道),無不與演算法息息相關。
演算法或是很簡單,或是很複雜。凡事從簡單做起,這是捷徑吧。本文將從最簡單的演算法說明一下學習演算法從哪開始。
有時簡單的事也會讓我們做成很複雜。比如:計算a的b次方吧,有人這樣處理:
Dim a As Single, Total As Single, b As Integer
a = Text1.Text: b = Text2.Text: Total = 1
Do While b <> 0
Total = Total * a
b = b - 1
L
Text3.Text = Total
甚至這樣:
Private Sub Command1_Click()
Dim a As Single, Total As Single
Dim b As Integer, n As Integer
a = Text1.Text
Total = Text1.Text
b = Text2.Text
Case b
Case 0
Total = 1
Case Is < 0
MsgBox "資料", vbOKOnly, "出錯"
Text3.Text = ""
Exit Sub
Case Else
For n = 1 To b - 1
Total = Total * a
Next
End Select
Text3.Text = Total
End Sub
其實,如若知道VB中有一個專門計算此類問題的運算子“^”,則會簡單可靠得多。試看:
Dim a As Double, b As Integer, c As Double
a = Text1.Text: b = Text2.Text
c = a ^ b
Text3.Text = c
再比如,VB程式設計樂園最近有一篇關於翻轉字串的文章,討論如何利用遞迴原理編制一個翻轉字元的,演算法很精密,非常有意思(推薦認真研究一下):
Function reversestring(revstr As String) As String
Dim doreverse As Long
reversestring = ""
For doreverse = Len(revstr) To 1 Step -1
reversestring = reversestring & Mid$(revstr, doreverse, 1)
Next
End Function
不過如果我們用VB的內部函式StrReverse則更快更方便:
Text2.Text = StrReverse(Text1.Text)
看了這上面幾個例子,你得出什麼結論?哈,要學演算法,首先得學一學VB的運算子和內部函式!吃透這些東西總沒錯,免得日後辛辛苦苦弄了個演算法,回頭一看,哇噻,VB自身早就有了!當然了,自己搞些演算法不會沒有好處的,至少可以鍛鍊鍛鍊嘛。只是在當今什麼都飛速發展的年代,如果不是為了練習的需要,最好不要走太多的彎路。我說錯了什麼的話,敬請斧正!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990111/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於 Spring-WebFlux 的一些想法SpringWebUX
- 關於讀書分享會的一些想法
- 關於單元測試的一些想法
- [CEO公開信] 關於管理和組織的一些想法
- 關於LCA的幾點想法
- 關於本書的一點想法
- 關於JavaScript跨域的若干想法JavaScript跨域
- 關於js繼承的想法筆記JS繼承筆記
- 對於效能測試的一些想法,歡迎交流
- 關於遊戲付費的一點想法遊戲
- 關於資料湖、資料倉儲的想法
- 關於一些爬蟲專案教程的整理(轉載)爬蟲
- 迴歸の一些想法
- 隨機性設計的一些想法隨機
- 關於position的一些理解
- 關於CodeReview的一些思考View
- 關於angularJS的一些用法AngularJS
- 關於table的一些操作
- 關於大語言模型時代下自學的一點想法模型
- 程式設計師買房的一些想法程式設計師
- 關於fsdb的一些記錄
- 《關於MySQL的一些騷操作》MySql
- 關於秋招的一些真相
- 關於一些奇葩的相容bug
- 關於Redis的一些小問題Redis
- 關於Canvas的一些經驗Canvas
- 關於ASM的一些理論ASM
- 關於 performSelector 的一些小探討performSelector
- 關於position定位的一些理解
- 關於 Masonry 的一些思考(下)
- 關於“運維”的一些思索運維
- 關於SAP的故事(轉)
- 關於大弓步,轉移和打左手和高個子的一些技巧
- 關於最近面試的一些心得面試
- 關於賬號安全的一些思考
- 關於學習的一些建議
- 關於AP的一些知識點
- MySql關於鎖的一些總結MySql
- 關於Base64的一些理解