眾所周知,蠶蛹是東北程序員非常喜歡的一種原始數(shù)據(jù),其加工算法有燒烤,鹽煮,開邊等,其中受燒烤算法在東北碼農(nóng)影響甚廣,一向廣為流傳,而且鹽煮雖然保留原始營養(yǎng)數(shù)據(jù)較多, 但因算法粗暴不雅,受廣大程序猿所鄙,因?yàn)閺?fù)雜即是高大上,開邊干煸作為蠶蛹這種原始數(shù)據(jù)加工處理的最復(fù)雜的方法之一,倍受程序猿們追捧,本文結(jié)合本拐的親自實(shí)現(xiàn),結(jié)合狼廠算法百科,總結(jié)了開邊算法中的一些細(xì)節(jié)和注意事項(xiàng),希望與廣大同胞共勉;
開邊算法整理的步驟如下:
水煮 (原始數(shù)據(jù)預(yù)處理)
剪裁 (數(shù)據(jù)規(guī)約及降噪)
煎炸 (油炸掛漿)
烹炒 (加鹽及成品輸出)
本文將結(jié)合PO主的實(shí)現(xiàn),分為以上4個(gè)維度進(jìn)行闡述
水煮
作為原始數(shù)據(jù)處理的第一步,水煮算法并不復(fù)雜,其具體實(shí)現(xiàn)如下:
$蠶蛹=洗凈($蠶蛹);$蔥段=切段($蔥,15cm);$冷水鍋=new 冷水鍋();$冷水鍋->水煮($蠶蛹,$蔥段);$冷水鍋->加鹽with勺(4);$冷水鍋->wait水開();$冷水鍋->中火(15min);
剪裁
狼廠算法百科中對剪裁部分闡述如下:
其中并沒有對剪裁部分進(jìn)行詳細(xì)闡述,本拐在實(shí)現(xiàn)過程中,最原始的方式如下:
剪裁($食材){ $左手 = get ($剪刀); $右手 = get ($食材); $食材 = 剪($左手,$右手); $res = 去除雜物($食材); //去掉前掉的蠶蛹中的蟲子 release($左手); release($右手); return $res;}
后來發(fā)現(xiàn)在實(shí)現(xiàn)的過程中,會進(jìn)行2n次get,2n次release,由于get()和realse()屬于外部IO操作,會占用大片的時(shí)間,因此,對此進(jìn)行了優(yōu)化,其具體算法如下:
$左手 = get ($剪刀);$剪后蛹 = [];$處理蛹 = [];foreach($蠶蛹 as $蛹){ $右手 = get($蛹); $tmp = 剪($左手,$右手); $剪后蛹[]=$tmp; release($右手);}foreach($剪后蛹 as $tmp){ $處理蛹[] =去除雜物($tmp);}release($左手);
可以看出,在優(yōu)化后的算法中,由于只進(jìn)行了n+1次get操作,n+1次release,因此,時(shí)間復(fù)雜度有了顯著提高。
煎炸
煎炸具體算法如下:
$水淀粉 = 注水($淀粉);$待炸蛹 = [];$炸后蛹 = [];控水($處理蛹);等待(15min);foreach($處理蛹 as $蛹){ $待炸蛹[]=$水淀粉->包裹($蛹);}$炸后蛹 = 煎炸($待炸蛹);
其中,值得注意的是,控水處理的一定是剪后的處理蛹,如果只對煮后的蠶蛹進(jìn)行操作,那么由于沒有控干水份,在煎炸過程中很可能發(fā)現(xiàn)蛹炸人亡的慘案,就像 2008 年,由于一個(gè)明星不會修電腦,后來的事情大家都知道了是吧。。。。
烹炒
烹炒是最后一步,也是整個(gè)算法的精妙所在,其實(shí)理論上,炸后的蠶蛹就是可以食用的,但是由于整體過軟,口感并不是很好,所以,炒一炒,加上些配料,才會讓最終的結(jié)果更加精妙。
加料的過程,不同的程序猿各有各的愛好,就本拐來講,本拐喜歡炒些紅椒,加些彩椒,具體實(shí)現(xiàn)方法如下:
$配料=切塊($彩椒);$小紅椒=get(小紅椒::class);$油鍋 = new 油鍋();$油鍋 -> 暴炒($小紅椒);$油鍋 -> 暴炒($配料);$油鍋 -> add($炸后蛹);$油鍋 -> 加鹽with勺(2);$開邊蠶蛹 = $油鍋->出鍋();
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7074瀏覽量
89153 -
算法
+關(guān)注
關(guān)注
23文章
4617瀏覽量
93030
原文標(biāo)題:備受程序員們追捧的開邊干煸處理蠶蛹的算法優(yōu)化
文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論