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