色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

這5個牛逼的算法設計你知道幾個

jf_B3xDfZry ? 來源:C語言學習聯盟 ? 作者:C語言學習聯盟 ? 2022-11-25 10:57 ? 次閱讀

1、分治法

概念:

將一個難以直接解決的大問題,分割成一些規模較小的相同問題,以便各個擊破,分而治之。

思想策略:

對于一個規模為n的問題,若該問題可以容易地解決(比如說規模n較小)則直接解決,否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞歸地解這些子問題,然后將各子問題的解合并得到原問題的解。

特征:

該問題的規模縮小到一定的程度就可以容易地解決

該問題可以分解為若干個規模較小的相同問題,即該問題具有最優子結構性質。

利用該問題分解出的子問題的解可以合并為該問題的解;

該問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的子子問題。

第一條特征是絕大多數問題都可以滿足的,因為問題的計算復雜性一般是隨著問題規模的增加而增加; 第二條特征是應用分治法的前提它也是大多數問題可以滿足的,此特征反映了遞歸思想的應用; 第三條特征是關鍵,能否利用分治法完全取決于問題是否具有第三條特征,如果具備了第一條和第二條特征,而不具備第三條特征,則可以考慮用貪心法或動態規劃法。 第四條特征涉及到分治法的效率,如果各子問題是不獨立的則分治法要做許多不必要的工作,重復地解公共的子問題,此時雖然可用分治法,但一般用動態規劃法較好。

基本步驟:

1 分解:將原問題分解為若干個規模較小,相互獨立,與原問題形式相同的子問題; 2 解決:若子問題規模較小而容易被解決則直接解,否則遞歸地解各個子問題 3 合并:將各個子問題的解合并為原問題的解。

適用分治法求解的經典問題:

1)二分搜索

2)大整數乘法

3)Strassen矩陣乘法

4)棋盤覆蓋

5)合并排序

6)快速排序

7)線性時間選擇

8)最接近點對問題

9)循環賽日程表

10)漢諾塔

2、動態規劃

概念:

每次決策依賴于當前狀態,又隨即引起狀態的轉移。一個決策序列就是在變化的狀態中產生出來的,所以,這種多階段最優化決策解決問題的過程就稱為動態規劃。

思想策略:

將待求解的問題分解為若干個子問題(階段),按順序求解子階段,前一子問題的解,為后一子問題的求解提供了有用的信息。 在求解任一子問題時,列出各種可能的局部解,通過決策保留那些有可能達到最優的局部解,丟棄其他局部解。 依次解決各子問題,最后一個子問題就是初始問題的解。

特征:

能采用動態規劃求解的問題的一般要具有3個性質: (1) 最優化原理:如果問題的最優解所包含的子問題的解也是最優的,就稱該問題具有最優子結構,即滿足最優化原理。 (2) 無后效性:即某階段狀態一旦確定,就不受這個狀態以后決策的影響。也就是說,某狀態以后的過程不會影響以前的狀態,只與當前狀態有關。 (3)有重疊子問題:即子問題之間是不獨立的,一個子問題在下一階段決策中可能被多次使用到。(該性質并不是動態規劃適用的必要條件,但是如果沒有這條性質,動態規劃算法同其他算法相比就不具備優勢)

基本步驟:

(1)分析最優解的性質,并刻畫其結構特征。 (2)遞歸的定義最優解。 (3)以自底向上或自頂向下的記憶化方式(備忘錄法)計算出最優值 (4)根據計算最優值時得到的信息,構造問題的最優解

適用動態規劃求解的經典問題:

矩陣連乘,

走金字塔

最長公共子序列(LCS) ,

最長遞增子序列(LIS) ,

凸多邊形最優三角剖分 ,

背包問題 ,

雙調歐幾里得旅行商問題

微信搜索C語言中文社區回復”C語言“,免費獲取200G編程資料

3、貪心法

概念:

在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的局部最優解。

思想策略:

貪心算法沒有固定的算法框架,算法設計的關鍵是貪心策略的選擇。必須注意的是,貪心算法不是對所有問題都能得到整體最優解,選擇的貪心策略必須具備無后效性,即某個狀態以后的過程不會影響以前的狀態,只與當前狀態有關。所以對所采用的貪心策略一定要仔細分析其是否滿足無后效性。

基本步驟:

建立數學模型來描述問題。

把求解的問題分成若干個子問題。

對每一子問題求解,得到子問題的局部最優解。

把子問題的解局部最優解合成原來解問題的一個解。

適用貪心法求解的經典問題:

活動選擇問題,

錢幣找零問題,

再論背包問題,

小船過河問題,

區間覆蓋問題,

銷售比賽,

Huffman編碼,

Dijkstra算法(求解最短路徑),

最小生成樹算法

4、回溯法

概念:

回溯算法實際上一個類似枚舉的搜索嘗試過程,主要是在搜索嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就“回溯”返回,嘗試別的路徑。回溯法是一種選優搜索法,按選優條件向前搜索,以達到目標。 但當探索到某一步時,發現原先選擇并不優或達不到目標,就退回一步重新選擇,這種走不通就退回再走的技術為回溯法,而滿足回溯條件的某個狀態的點稱為“回溯點”。 許多復雜的,規模較大的問題都可以使用回溯法,有“通用解題方法”的美稱。

思想策略:

在包含問題的所有解的解空間樹中,按照深度優先搜索的策略,從根結點出發深度探索解空間樹。當探索到某一結點時,要先判斷該結點是否包含問題的解,如果包含,就從該結點出發繼續探索下去,如果該結點不包含問題的解,則逐層向其祖先結點回溯。(其實回溯法就是對隱式圖的深度優先搜索算法)。若用回溯法求問題的所有解時,要回溯到根,且根結點的所有可行的子樹都要已被搜索遍才結束。

特征:

(1)針對所給問題,確定問題的解空間:首先應明確定義問題的解空間,問題的解空間應至少包含問題的一個(最優)解。 (2)確定結點的擴展搜索規則 (3)以深度優先方式搜索解空間,并在搜索過程中用剪枝函數避免無效搜索。

適用回溯法求解的經典問題:

八皇后問題,

圖的著色問題,

裝載問題,

批處理作業調度問題,

再再論背包問題,

最大團問題,

連續郵資問題,

符號三角形問題,

5、分支限界法

概述:

類似于回溯法,也是一種在問題的解空間樹T上搜索問題解的算法。但在一般情況下,分支限界法與回溯法的求解目標不同。 回溯法的求解目標是找出T中滿足約束條件的所有解,而分支限界法的求解目標則是找出滿足約束條件的一個解,或是在滿足約束條件的解中找出使某一目標函數值達到極大或極小的解,即在某種意義下的最優解。

策略:

在擴展結點處,先生成其所有的兒子結點(分支),然后再從當前的活結點表中選擇下一個擴展對點。為了有效地選擇下一擴展結點,以加速搜索的進程,在每一活結點處,計算一個函數值(限界),并根據這些已計算出的函數值,從當前活結點表中選擇一個最有利的結點作為擴展結點,使搜索朝著解空間樹上有最優解的分支推進,以便盡快地找出一個最優解。

與回溯法的區別:

回溯法:【方式不同】深度優先搜索堆棧活結點的所有可行子結點被遍歷后才被從棧中彈出找出滿足約束條件的所有解【目標不同】。分支限界法:【方式不同】廣度優先或最小消耗優先搜索隊列、優先隊列每個結點只有一次成為活結點的機會找出滿足約束條件的一個解或特定意義下的最優解【目標不同】。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4629

    瀏覽量

    93227
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137495
  • 算法設計
    +關注

    關注

    0

    文章

    24

    瀏覽量

    8178

原文標題:5 個牛逼的算法設計,你知道幾個?

文章出處:【微信號:C語言學習聯盟,微信公眾號:C語言學習聯盟】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式 超 的語言 C++ 學習寶典!!!

    嵌入式 超 的語言 C++學習寶典!!!
    發表于 09-19 11:42

    ,這是什么軟件制作的,求解答

    ,這是什么軟件制作的,求解答
    發表于 11-29 10:09

    就他了新人報道,感覺這是的論壇,

    感覺這是的論壇 這輩子就他了, 技術宅屌絲就這樣過一生了 新人報道{:4_95:}
    發表于 07-14 23:30

    嵌入式開發比較的培訓機構

    要說嵌入式比較正規的機構首推華清遠見,嵌入式起家的,不過物聯網的情況不清楚,我只報了嵌入式的開發,小伙伴們,注意了,別以為嵌入式薪資高就學他,嵌入式比andriod難多了,要根據個人情況來,我
    發表于 01-07 20:31

    見過防水、防塵,還這么便宜的電容觸控芯片嗎?

    、防塵、防光照的三防電容觸控芯片SPT10 T系列,國內一家芯片設計商做的,小創業公司,三普林斯頓博士研發的遠距離電容感應芯片。聽起來很,但人確實
    發表于 08-07 11:37

    matlab函數總結

    matlab函數總結,想大家會因為MATLAB函數不懂吧!自己看看吧!
    發表于 11-06 17:18 ?0次下載

    小米5s和榮耀8撞到了一起,同樣的價格會選誰

    2016年無疑出現過非常多的手機,其中一些的手機~它們都很的同時,還都賣一樣的價錢,
    發表于 04-16 11:16 ?844次閱讀

    MIUI的10小設置知道

    其實在MIUI里,藏著很多個性化的選擇,接下來的10小設置,知道嗎?
    的頭像 發表于 05-08 16:53 ?4357次閱讀

    的程序員是怎么樣

    長期臥底各大程序員圈,總結出現實中那些程序員的主要表現癥狀,如下:
    的頭像 發表于 12-01 11:51 ?3055次閱讀

    關于STM32的這幾個寄存器, 知道嗎?

    關于STM32的這幾個寄存器,知道嗎?
    的頭像 發表于 03-06 15:19 ?1w次閱讀

    分享幾個vscode必備精品插件

    今天分享幾個 vscode 必備精品插件,讓的 vscode 更
    的頭像 發表于 09-07 09:13 ?3137次閱讀

    16網絡工程知識,知道幾個

    網絡工程師需要掌握哪些知識呢?下面的16網絡工程相關知識,可以看看,幾個
    的頭像 發表于 01-04 10:50 ?1114次閱讀

    pcb菲林是什么?5作用你知道

    pcb菲林是什么?5作用你知道
    的頭像 發表于 11-22 11:14 ?8696次閱讀

    測測10AI關鍵詞清楚幾個?第4今年最火

    原文標題:測測10AI關鍵詞清楚幾個?第4今年最火 文章出處:【微信公眾號:微軟科技】歡迎添加關注!文章轉載請注明出處。
    的頭像 發表于 12-21 08:15 ?575次閱讀
    測測<b class='flag-5'>這</b>10<b class='flag-5'>個</b>AI關鍵詞<b class='flag-5'>你</b>清楚<b class='flag-5'>幾個</b>?第4<b class='flag-5'>個</b>今年最火

    知道激光鉆孔技術有多嗎?看完這篇文章就明白了

    知道激光鉆孔技術有多嗎?看完這篇文章就明白了
    的頭像 發表于 02-29 17:09 ?1065次閱讀
    主站蜘蛛池模板: 黑人玩弄极品人妻系列 | 亚洲欧美一区二区成人片 | 精品亚洲大全 | 人妻中文字幕无码系列 | 久操久操久操 | 恋夜秀场支持安卓版全部视频国产 | 亚洲国产AV精品卡一卡二 | 国产成人精品s8p视频 | 一本大道香蕉中文在线视频观看 | 玖玖爱这里只有精品视频 | 亚洲国产精品无码2019 | 久久国产乱子伦免费精品 | 亚洲精品久久久久久久蜜臀老牛 | 欧美兽交YOYO | 2019久久视频这里有精品15 | 男人的天堂黄色片 | 麻豆AV久久无码精品九九 | 国产人妻麻豆蜜桃色69 | 99在线精品免费视频 | 欧美xxxxx18| 香艳69xxxxx有声小说 | 国偷自产视频一区二区久 | 美女大BXXXXN内射 | 在线日本高清日本免费 | 在线黑人抽搐潮喷 | 沈阳熟女露脸对白视频 | 高清国产免费观看视频在线 | 柏木舞子在线 | 91嫩草视频在线观看 | 国产偷抇久久精品A片蜜臀AV | 内射人妻无码色AV麻豆去百度搜 | 美国xaxwaswaskino| 色婷婷五月综合中文字幕 | 大胸美女脱内衣黄网站 | 久久亚洲网站 | 日韩人妻无码精品-专区 | 果冻传媒在线观看进入窗口 | 男男被强bl高h文 | 亚洲 自拍 偷拍 另类综合图区 | 精品粉嫩BBWBBZBBW | 日韩精品无码视频一区二区蜜桃 |