<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          會(huì)寫遞歸超越了多少程序員?

          共 3140字,需瀏覽 7分鐘

           ·

          2023-11-09 04:35

          程序員的成長之路
          互聯(lián)網(wǎng)/程序員/技術(shù)/資料共享 
          關(guān)注


          閱讀本文大概需要 2.8 分鐘。

          來自:https://www.zhihu.com/question/589779747

          閃耀大叔

          好多年前的我,大二,剛學(xué)c語言,啥也不會(huì),只會(huì)遞歸。參加藍(lán)橋杯,就憑這一招,拿了省賽一等獎(jiǎng),國賽二等獎(jiǎng)。我以為自己很強(qiáng),后來發(fā)現(xiàn)是這個(gè)比賽水......


          后來做嵌入式,發(fā)現(xiàn)遞歸思路簡單,但開銷極大,經(jīng)常想盡辦法改成非遞歸......

          Evan_song

          恭喜你!你超越了大部分程序員!

          你掌握了遞歸技術(shù),說明你可以寫出dfs!

          使用dfs技術(shù),你可以寫二叉搜索樹!

          熟練運(yùn)用dfs,你還可以完成線段樹的編寫!

          二叉搜索樹再隨便學(xué)學(xué),就是平衡樹,你掌握了FHQ,Splay,Treap,紅黑樹,替罪羊樹,B樹!


          線段樹可以拓展到值域線段樹!

          同樣的,平衡樹可以拓展到文藝平衡樹!

          繼續(xù)就是樹套樹!

          Link-Cut-Tree!

          往圖論那邊走走,你學(xué)會(huì)了tarjan!


          tarjan可以完成割邊割點(diǎn),邊點(diǎn)雙連通分量!

          二分圖匈牙利算法、網(wǎng)絡(luò)流最大流也不難,會(huì)dfs都可以學(xué)!

          你還可以去DP那看看,dfs記憶化加剪枝能完成很多動(dòng)態(tài)規(guī)劃!

          這還不止,會(huì)遞歸就可以寫歸并排序,你掌握了sorting。


          你會(huì)求逆序?qū)Α?/span>

          你會(huì)分治。

          你會(huì)CDQ分治。

          你會(huì)整體二分。

          你會(huì)KDtree你會(huì)exgcd,你會(huì)歐拉反演你會(huì)莫比烏斯反演。

          …………

          Terrell

          會(huì)寫遞歸容易,會(huì)把實(shí)際問題建模成遞歸問題才是能力。實(shí)際工作中總會(huì)看到一個(gè)復(fù)雜的問題被大佬搞成驚艷的遞歸。

          揚(yáng)揚(yáng)

          多年以前的公司,年末會(huì)有一項(xiàng)小活動(dòng),大家一起實(shí)現(xiàn)一小段程序,看誰效率最高。


          第一年搞的是輸出100內(nèi)質(zhì)數(shù),一個(gè)來實(shí)習(xí)的小姑娘獨(dú)占鰲頭。一看代碼直接手動(dòng)輸出,確實(shí)效率最高。


          第二年總監(jiān)學(xué)聰明了,搞了個(gè)兔子繁殖(1,1,2,3,5...),輸出第幾萬個(gè)。像我這種用遞歸實(shí)現(xiàn)的菜雞直接沒有運(yùn)行的機(jī)會(huì),。

          南山煙雨珠江潮

          會(huì)寫遞歸剛?cè)腴T,不會(huì)寫遞歸的不能稱之為程序員。


          但是如果能將任意循環(huán)改成遞歸、且能將任意遞歸改成循環(huán),應(yīng)該可以超越30%以上的程序員。

          karlestira

          不好說,看問題。

          有一些東西,人家哼哧哼哧寫一長串循環(huán)邏輯,你寫了一個(gè)看似很優(yōu)美的遞歸。

          上線以后人家的運(yùn)行正常,你的爆棧。


          現(xiàn)實(shí)中并沒有那么多只能靠遞歸來解的問題,但現(xiàn)實(shí)中有很多商業(yè)應(yīng)用邏輯要求你能夠適應(yīng)任意大小的輸入,不得因?yàn)檩斎胍?guī)模變化導(dǎo)致程序崩潰(有些人對咱這里說的規(guī)模不是很清楚,我就這么說吧,匿名頁100G起步,IO總量T級別起步,P級別也算正常)。在我的觀念里除開一些特殊場合(比如遍歷文件系統(tǒng),目錄深度100層已經(jīng)很了不起了,層數(shù)過多文件系統(tǒng)就先報(bào)警了),遞歸真的只能寫玩具。


          另外,哥們,像我做高性能計(jì)算,AVX這種SIMD指令幾乎是必須使用的。遞歸方便使用SIMD指令嗎?寫到CUDA那邊還舒服嗎?以后的維護(hù)人員會(huì)不會(huì)想請你吃大嘴巴?


          真正對性能要求特別高的東西、瓶頸已經(jīng)到訪存帶寬、L3延遲的,我就沒見過一定要遞歸處理的,99%以上都是SIMD的思路。至于性能沒啥要求的,應(yīng)付應(yīng)付網(wǎng)卡那點(diǎn)撐死16GB每秒速度、延遲微秒起步的東西,你愛咋寫咋寫。


          我還是那句話,如果一個(gè)實(shí)際問題你第一反應(yīng)就是想遞歸(比如說文件系統(tǒng)遍歷),那就遞歸,如果你第一反應(yīng)不是遞歸,并且不用遞歸也可以很舒服的寫出代碼,那遞歸就毛用沒有,對這種問題強(qiáng)行遞歸我只能說回字確實(shí)有很多種寫法。

          <END>

          推薦閱讀:

          史無前例:向來封閉的蘋果開源了!

          注解方式優(yōu)雅的實(shí)現(xiàn) Redisson 分布式鎖

             
             
          互聯(lián)網(wǎng)初中高級大廠面試題(9個(gè)G)

          內(nèi)容包含Java基礎(chǔ)、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬并發(fā)、消息隊(duì)列、高性能緩存、反射、Spring全家桶原理、微服務(wù)、Zookeeper......等技術(shù)棧!

          ?戳閱讀原文領(lǐng)取!                                  朕已閱 

          瀏覽 970
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲一逼| 视频黄色国产 | 日本三级精品视频 | 久久天天弄| 在线视频一区二区 |