第五章:只有我會
光看題目,林景還沒什麼頭緒。
但是結合顏安的代碼一看,順着他的思路一步步捋,很快便恍然大悟。
確實厲害,不得不承認,如果是讓他來的話一時半會可想不到解題方法,就算能寫出來也不會像顏安這般巧妙。
看得出來他這兩天估計沒少下苦功夫,怕是要比他們學的更瘋,這水平和前幾天一比簡直是兩個人,真難想像這麼大的提升居然只隔了兩天。
過完倒數第四題,林景很快投入到倒數第三題中,可是這一次他發現自己不僅沒有解題思路,就連顏安的代碼看了都是雲裏霧裏的。
看來從這題開始,隊伍與隊伍之間的差距就要拉開了,林景試着去運行顏安的代碼,出乎意料的是這次也成功的跑出了結果。
可惜不知道答案的他無法判斷是否正確。
猶豫地看了一眼顏安,向一個比他小且僅學兩個月編程的學弟請教問題讓他總感覺怪怪的。
尤其是這位學弟的水平前幾天還沒這麼高,碰上問題經常要問他。
處境的轉變讓林景有些拉不下臉,可眼前的代碼如果沒有較長一段時間去閱讀分析,他是理解不了的。
林景等不了那麼久,他恨不得現在就知道顏安用的是什麼方法。
“現在有空嗎?”湊過去看了一眼顏安的電腦屏幕,正在寫的是第八題。
由於他攬過了最後一題,顏安也就與劉希學姐重新分配了一下,兩人交錯把剩下的題目給搞定。
“學長怎麼了?是最後一題寫出來了嗎?”顏安立即放下鍵盤興奮的問道,他在寫其他題目的時候仍在腦海中思索着最後一題的解法。
目前他能想到的最優解法就是用相性數據結構和複雜相性算法配合解題,但他的直覺告訴他這絕對不是最優解。
這道題應該還有更簡便的方法,只是自己沒有掌握。
林景臉上一僵,他連倒數第三題都想不出解題思路,給他代碼也看不懂,就別說最後一題了。
“其實我是想問你這道題用的是什麼算法,我有點看不明白。”想求知就得拉的下臉,為了解惑林景豁出去了。
換來的是顏安驚訝一眼,隨後是恍然的表情,“這道題確實有點難度,我本來想用優先隊列來寫,考慮到這個方法的綜合複雜度有點高
所以我就換成了相性跳躍算法,本來代碼應該更簡略一些的,但加上相性數據結構后就比較多了,和隊列套隊列應該是差不多的。”
從他的口中,一個又一個的名詞蹦了出來,林景聽得暈乎乎的。
優先隊列他知道,顏安這麼一點他就想到了這題可以考慮貪心算法,每次拉出兩個點然後連邊更新,再放入優先隊列即可。
可相性跳躍算法是什麼?還有相性數據結構又是什麼?
有這種數據結構嗎?
林景努力的在腦海中回憶了許久,發現這兩名詞他聽都沒聽過。
“等下,你說慢點。相性數據結構是哪本書里的?”
雖然碧穹星的算法發展到現在多種多樣,但作為基礎的數據結構可沒有太大的更新。
翻來覆去也就那麼十幾種,甚至可以歸類為八種,他倒着都能背出來,其中絕不包含顏安所說的相性數據結構。
林景看向了顏安的代碼,他能清晰的分辨出哪一部分是顏安口中的相性數據結構,但看不懂這部分代碼。
準確的說是他明白組成代碼的每個關鍵字,
可為什麼要這樣做,有什麼作用,運行起來后結構是什麼樣的,林景完全預料不到。
“相性數據結構從入門到精通。”顏安在小小的猶豫了一下后如實回答道。
林景感覺自己腦袋上正在不斷的冒出問號,還有這本書?
正在他們附近的章老師笑了笑打趣道,“果然你是掉到懸崖底下了吧。”
這書名別說林景了,就連他都沒有聽過,想來是顏安胡編亂造拿來唬人的,看林景那一愣一愣的表情就知道效果不錯。
至於林景看不懂顏安的代碼,章老師也沒往心裏去,這種事太常見了,林景又不是全知全能,他一個學生不懂的地方太多了。
出於好奇心,章老師也湊到他們身邊看了一眼代碼,乾淨整潔,快趕上書上的示範了,但他也看不懂,和林景一樣的情況。
“這代碼是你寫的?答案是對的,但你這思路怎麼想出來的?”章老師意外的看一眼顏安,能寫出倒數第五題他就已經很意外了,這道題就算是林琛想寫出來也沒那麼輕鬆。
“是我寫的啊。”顏安也很奇怪,怎麼說真話就是沒人信呢。
以前他還試過跑去和朱赤國的警察說自己是外星人,白星野是他爸,須盡歡是他媽,然後被人當精神病給趕走了。
這顆星球人與人之間的信任程度太低了。
“採用相性歸類對數據自動處理,構建起相性數據結構,不同數據在相性歸類計算中展現的結果不同,這就是‘相性’。
再用相性跳躍算法進行計算,類似於二分法先處理一部分數據,再根據相性結構本身的數據關聯得出解。”
“我看看的代碼……”顏安說得有鼻子有眼,讓他開始相信這兩項新技術的存在了,只是心中仍有疑慮,畢竟是連自己都沒聽過的新技術,顏安又是怎麼知道並學會的?
他的水平可不是林景能比的,林景看不懂的代碼在他眼裏沒那麼高難度,就是理解起來有點費勁。
“相性歸類……拆分數字,相同的放一邊,不同的……”花了好一會兒功夫,一邊在口中喃喃,一邊在腦海中不放鬆思索,總算是捋順了思路。
“再通過初步計算,因為比對不成功所以可以直接放棄這部分數據,跳躍至另一部分,達到縮減計算量的效果……”
安安靜靜的機房突兀的響起拍桌聲,章年生興奮的扭過頭看向顏安,“這結構有意思,你從哪學來的,我去看看。”
看懂后,他就明白這類結構不在現今數據結構體系之中,是絕對的開創性的成果。
應該是剛刊登在學術期刊上的新技術,這兩天院裏的工作太多了,他也沒時間去關注前沿發展,對剛出來的技術沒聽過很正常。
同時在心裏對顏安的評價上升了一個等級,畢竟請假兩天沒有荒廢不說,還大有進步,甚至連剛出來的技術都學上了,足以見他的刻苦。
“嗯……其實這技術應該只有我會。”顏安不確定的說道,畢竟數據結構一類的技術並非銘星專有,相性數據結構也不是基於銘星特有的技術。
碧穹星在一九六六年就提出了數據結構這一概念,在二十世紀八十年代完成了對其的基礎研究。
即從那個時候開始到現在為止的這段時期是完全有可能自行發展出相性數據結構的。
只是直到目前為止,BT仍沒有在碧穹星網絡上檢索出與之相關的技術。
說明這項技術在碧穹星要麼還沒被發展出來,要麼就是發展出來還沒得到應用。
無論是哪種情況,顏安都是目前已知的唯一掌握這項技術的人。
“只有你會?”章老師看着他滿眼都是不信,這句話換個意思不就是這門技術由他開創。
一個學編程不足兩個月的學生,創造出了一種新型的數據結構,還有與之配套的算法。
這種事怎麼想都覺得不可能,他教書十幾年,就沒見過這種事,完全超出認知了。
他更傾向於顏安是在撒謊,所謂的相性數據結構應該是從某篇學術雜誌上看來的,但是為了在其他人面前出風頭,所以說成是自己的。
這種事情在大學並不罕見,人都是喜歡爭面子的,別說學生會這樣做,甚至連老師都有可能出現這種情況。
如果掌握的是某種冷門技術,那能裝上好長一段時間,就算以後被發現了,也沒人去追究他今天說的話,一個學生隨口吹出去的牛皮而已,當不得真。
整個機房的人都因為這邊的動靜看了過來,顏安面不改色的點頭。
“對啊,只有我會,就前兩天掌握的,除了相性數據結構、相性跳躍算法,還有複雜相性算法。
這個可以用來解最後一題,但是我總感覺還有更簡單的方法,所以一直沒寫。”
居然不止一種技術,章老師看着他的自信,原本對顏安不錯的印象急轉直下,隨手指了指電腦,“你先寫,讓我看看。”