久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2459|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

回溯搜索算法的程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:127496 發(fā)表于 2016-6-20 23:12 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
    回溯搜索這種算法那是相當(dāng)?shù)挠杏茫覍?duì)于初學(xué)者來說還很簡(jiǎn)單。學(xué)習(xí)它的前提是你必須先理解一下遞歸是怎么回事。。如果不知道你可以上百度搜一搜或是在空間里找到關(guān)于我寫的遞歸的那篇文章。。如果已經(jīng)理解了遞歸那么理解回溯搜索就是一件很簡(jiǎn)單的事了。


    回溯是怎么回事呢?說簡(jiǎn)單了就是“一條路搜到黑”,當(dāng)無法再繼續(xù)搜下去時(shí)我就返回上一步。有點(diǎn)像左手法則,總是最終的結(jié)果就是會(huì)從左到右的(或從右到左)遍歷整個(gè)樹(即遍歷所有情況)。



    那么,既然是說明算法那么總得舉幾個(gè)例子來看看吧。這里有一道“經(jīng)典”的題目:

        

        輸入一個(gè)長(zhǎng)度=15的字符串(此處示范為"342589062876256"),在其中插入5個(gè)“+”號(hào),盡量使得最終結(jié)果最小。該怎么寫呢?


    這里使用VBScript做一個(gè)示范吧:
Dim ax, ex
ax=10^10
ex=""
Function Rec (Str1, InsertAt, Plus_N)
    '注釋:Str1:當(dāng)前字符串。InsertAt:當(dāng)前指針的位置。Plus_N:剩余的加號(hào)數(shù)量

    Dim a, StrA, StrB, StrC
    If InsertAt = Len(Str1) Then '如果搜索到了字符串的末尾
        If Plus_N = 0 Then '如果剩余加號(hào)數(shù)量為0,(而不是負(fù)數(shù)或正數(shù))
            a = Eval(Str1) '計(jì)算結(jié)果值            if a<ax Then   '如果小于“最優(yōu)值”                ax = a     '儲(chǔ)存他
                ex = Str1
            End If
        Else
            Exit Function
        End If
    Else
        StrA = Mid (Str1, 1, InsertAt)'把字符串分段
        StrB = Mid (Str1, InsertAt + 1, Len(Str1) - InsertAt)
        Rec StrA & "+" & StrB, InsertAt + 2, Plus_N - 1  '先嘗試在其中插入加號(hào)的情況
        Rec StrA & StrB, InsertAt + 1, Plus_N            '再嘗試不插入加號(hào)的情況。這樣就能遍歷所有的情況了。
    End If
End Function

Rec "342589062876256", 1, 5   '調(diào)用函數(shù)
msgbox ex & "=" & ax    '儲(chǔ)存結(jié)果


    當(dāng)然,你會(huì)發(fā)現(xiàn)這段代碼存在的問題也很大,有很大的優(yōu)化空間,題目要求只能插入5個(gè)加號(hào),但有時(shí)候我們插入了更多,有時(shí)候我們一個(gè)也沒有插入。對(duì)這些情況的搜索浪費(fèi)了相當(dāng)多的時(shí)間。你可以通過加一個(gè)計(jì)數(shù)器來計(jì)算這個(gè)程序一共遍歷了多少個(gè)節(jié)點(diǎn)。而實(shí)際上有許多借點(diǎn)可以丟棄。如何來優(yōu)化它?方法就是就是剪枝。我們下一次再討論。





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久一区二区三区 | 久久激情视频 | 久久久九九九九 | 久久青视频 | 国产一级一片免费播放 | 国产成人精品高清久久 | 久久久蜜臀国产一区二区 | 国产精品s色 | 天天操操操操操 | 亚洲人在线播放 | 久久综合成人精品亚洲另类欧美 | 国产欧美日韩在线 | av在线一区二区三区 | 欧美日本韩国一区二区 | 在线观看亚洲精品 | 日韩视频在线一区 | 国产精品一级在线观看 | h视频网站在线观看 | 久久av一区二区三区 | 国产精品一区二区久久精品爱微奶 | 国产精品大全 | 人人爽日日躁夜夜躁尤物 | 热re99久久精品国99热观看 | 亚洲午夜网 | 久久99深爱久久99精品 | 国产精品免费一区二区三区四区 | 亚洲伦理自拍 | 欧美在线观看免费观看视频 | 中文字幕91 | 深夜福利影院 | 免费国产一区 | 五月婷婷婷 | 久久国内精品 | 色橹橹欧美在线观看视频高清 | 免费h在线 | 伊人伊人伊人 | 伊人影院在线观看 | 久久精品欧美视频 | 国产一区二区三区亚洲 | 日韩免费视频一区二区 | 欧美日韩国产精品一区 |