從零單排的算法基礎(chǔ)

首先,咱們得先知道徘层,什么是算法峻呕?

在生活中,當(dāng)我們做菜趣效,玩游戲瘦癌,都有一些“套路”,無(wú)論是所謂的游戲秘籍跷敬,還是大師菜譜讯私,在計(jì)算機(jī)的世界中,稱之為算法西傀。其目的就是為了解決一個(gè)問(wèn)題妄帘,從而開(kāi)展的不同的步驟,但究竟是不是這么簡(jiǎn)單呢池凄,咱們就從算法的特性說(shuō)起抡驼。

咱們可以從書(shū)中得知,算法有五個(gè)特性:

聽(tīng)上去很是玄乎肿仑,但是仔細(xì)分析還是可以有些不同的收獲致盟。

  1. 確定性
    一種算法除了能得出正確的結(jié)論之外,還得有明確操作步驟尤慰。如同把大象放進(jìn)冰箱馏锡,第一步是打開(kāi)冰箱,第二布是把大象放進(jìn)去伟端,第三步就是關(guān)上門(mén)杯道。
  2. 可行性
    上面我提到把大象放進(jìn)冰箱的幾個(gè)步驟,第二個(gè)步驟顯然是不可行的责蝠,所以自然也無(wú)法得出正確的結(jié)構(gòu)党巾。那么可行性就很重要了。
  3. 有窮性
    我再舉一個(gè)例子霜医,如果咱們要統(tǒng)計(jì)中國(guó)的人口齿拂,你不好好查人口數(shù)據(jù),非要一個(gè)個(gè)的數(shù)肴敛。這樣子雖然聽(tīng)上去總有一天數(shù)完署海,但是顯然是不可能的吗购,所以算法還需要有窮的步驟和有窮的執(zhí)行時(shí)間。
  4. 輸入和輸出
    這兩個(gè)我就和起來(lái)說(shuō)砸狞,簡(jiǎn)而言之就是捻勉,輸入就是問(wèn)題,輸出就是答案刀森。而且只要問(wèn)題不變贯底,同一個(gè)算法得出的答案自然也是相同。

現(xiàn)在我們知道了什么是算法撒强,那么——什么樣的算法是一個(gè)好的算法呢禽捆?

正確是最最最最最最重要的

算法本身就是為了得出正確的結(jié)果而總結(jié)的“套路”,(除非是你用錯(cuò)了算法)如果沒(méi)能得出正確的結(jié)論飘哨,那這個(gè)算法還有什么存在的意義呢胚想?

不是我自己的錯(cuò),我也要承擔(dān)的綠帽精神(健壯)

咱們都知道芽隆,是人那就會(huì)犯錯(cuò)浊服,比如咱們做了個(gè)計(jì)算器,讓用戶輸入數(shù)字和符號(hào)進(jìn)行計(jì)算胚吁,然而卻給咱輸入了一堆字母牙躺,自然得不出正確的結(jié)果,咱又不能去揍他腕扶,畢竟用戶是上帝嘛孽拷,當(dāng)然是選擇原諒他。那么面對(duì)錯(cuò)誤的輸入時(shí)不會(huì)出錯(cuò)甚至能給出正確的解答半抱,這也是好算法的一方面脓恕。

只有上帝知道我上個(gè)月前寫(xiě)的是什么玩意(可讀)

如果是在工作中,可不是只有自己會(huì)看自己所寫(xiě)的代碼窿侈,咱們不僅得看別人寫(xiě)的代碼炼幔,還得有別人看自己代碼的準(zhǔn)備。在你痛罵別人不寫(xiě)注釋的同時(shí)史简,不妨也給自己的代碼寫(xiě)上乃秀,因?yàn)楹苡锌赡苓^(guò)段時(shí)間,你自己也看不懂了圆兵。除此之外跺讯,更加重要的是寫(xiě)代碼的時(shí)候遵守規(guī)范,語(yǔ)法正確衙傀,代碼結(jié)構(gòu)清晰有條理抬吟,命名合理。统抬。。。

天下武功聪建,唯快不破钙畔!

咱們的計(jì)算機(jī)性能是有限的,在提高硬件水平的同時(shí)金麸,咱們所寫(xiě)的程序也要盡量的高效擎析。解決同一個(gè)問(wèn)題,不同的算法做耗費(fèi)的時(shí)間和資源有這天壤之別挥下。有個(gè)笑話是這么說(shuō)的揍魂,有個(gè)人為了給銀行找麻煩,特意兌換了好幾萬(wàn)的硬幣去銀行棚瘟,要存錢(qián)现斋。本來(lái)準(zhǔn)備好好看柜員們數(shù)錢(qián)數(shù)到天昏地暗,結(jié)果一稱重量偎蘸,一除就得出了總數(shù)庄蹋。這,就是算法的力量迷雪。

那么說(shuō)了這么多限书,我還是不知道該怎么判斷什么樣的算法是好算法

在正確的前提下,咱們希望算法能夠占用的資源少章咧,運(yùn)行的時(shí)間快倦西。也就是讓馬兒少吃草,快快跑赁严,你說(shuō)這可能嗎调限?還真就有可能。

咱們要建立標(biāo)準(zhǔn)误澳,量化效率耻矮,構(gòu)建理想模型。比如圖靈機(jī)模型忆谓,RAM模型等

用復(fù)雜度(大O記號(hào))來(lái)表示效率裆装,之后咱們就根據(jù)這個(gè)來(lái)評(píng)判算法的好壞(快慢)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末倡缠,一起剝皮案震驚了整個(gè)濱河市哨免,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昙沦,老刑警劉巖琢唾,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異盾饮,居然都是意外死亡采桃,警方通過(guò)查閱死者的電腦和手機(jī)懒熙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)普办,“玉大人工扎,你說(shuō)我怎么就攤上這事∠味祝” “怎么了肢娘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)舆驶。 經(jīng)常有香客問(wèn)我橱健,道長(zhǎng),這世上最難降的妖魔是什么沙廉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任拘荡,我火速辦了婚禮,結(jié)果婚禮上蓝仲,老公的妹妹穿的比我還像新娘俱病。我一直安慰自己,他們只是感情好袱结,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布亮隙。 她就那樣靜靜地躺著,像睡著了一般垢夹。 火紅的嫁衣襯著肌膚如雪溢吻。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天果元,我揣著相機(jī)與錄音促王,去河邊找鬼。 笑死而晒,一個(gè)胖子當(dāng)著我的面吹牛蝇狼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播倡怎,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼迅耘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了监署?” 一聲冷哼從身側(cè)響起颤专,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钠乏,沒(méi)想到半個(gè)月后栖秕,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晓避,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年簇捍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了只壳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垦写,死狀恐怖吕世,靈堂內(nèi)的尸體忽然破棺而出彰触,到底是詐尸還是另有隱情梯投,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布况毅,位于F島的核電站分蓖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏尔许。R本人自食惡果不足惜么鹤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望味廊。 院中可真熱鬧蒸甜,春花似錦、人聲如沸余佛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辉巡。三九已至恨憎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奕枝,已是汗流浹背昔案。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工吩翻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人钥组。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像今瀑,于是被迫代替她去往敵國(guó)和親程梦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,190評(píng)論 25 707
  • 1放椰、算法的概念 (1)概念:是指解題方案的準(zhǔn)確而完整的描述作烟。 【考題1】在計(jì)算機(jī)中,算法是指() A查詢方法B加工...
    成都小菜閱讀 1,585評(píng)論 0 15
  • 我很喜歡一個(gè)人砾医。 我很喜歡一個(gè)人拿撩,有兩種理解:一、我喜歡一個(gè)女孩如蚜,有種愛(ài)她的沖動(dòng)压恒,不會(huì)討厭她影暴;二、我喜歡獨(dú)自一人探赫,...
    f543445203bc閱讀 253評(píng)論 0 2
  • 第一段落:不同時(shí)代人民遵循的原則不同型宙,所以統(tǒng)治的策略也不同。君主之道有規(guī)律可循伦吠。 遠(yuǎn)古時(shí)代:人民親親妆兑,愛(ài)私利 中古...
    拾遺書(shū)生閱讀 755評(píng)論 0 0
  • 文/陌上花狗 01 人們?cè)趶?qiáng)大的力量面前總是選擇服從,但是今天如果我們放棄了一點(diǎn)五元的發(fā)票毛仪,明天我們就可能被迫放棄...
    陌上花狗閱讀 760評(píng)論 0 4