天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

淺談代碼的執(zhí)行效率(1):算法是關(guān)鍵

  前一段時(shí)間在博客園里看到這樣一篇文章,那位兄弟談到程序效率的關(guān)鍵是“簡(jiǎn)短”。他說(shuō),“程序越簡(jiǎn)短,其可執(zhí)行代碼就越少,就越有效率”,而在編寫(xiě)程序的時(shí)候,“要盡量改進(jìn)我們的算法,而改進(jìn)算法中最重要的一條,就是減少語(yǔ)句”。這句話從表面上似乎正確,但我認(rèn)為性能這問(wèn)題不能用“簡(jiǎn)短”這種方式去思考,否則會(huì)進(jìn)入一些誤區(qū)。我整理了一下思路,希望可以從幾個(gè)方面把詳細(xì)談一下這個(gè)問(wèn)題。

首先,如果說(shuō)“簡(jiǎn)短的代碼效率高”,那么什么叫作“簡(jiǎn)短”呢?姑且理解為“代碼少”吧。如果“代碼少”能夠得出“效率高”,那我認(rèn)為還需要其他一些條件,例如:

  • 代碼完全是順序執(zhí)行的
  • 每行代碼的效率相同

  但是,這對(duì)于使用高級(jí)語(yǔ)言的程序員來(lái)說(shuō),這兩條基本上都無(wú)法成立,因?yàn)椋?/p>

  • 代碼中有條件跳轉(zhuǎn)(如循環(huán)),因此一段簡(jiǎn)短的代碼最終執(zhí)行的“次數(shù)”可能比一段復(fù)雜的代碼要多。這是很常見(jiàn)的情況,并非如那位兄弟所說(shuō)“兩三行代碼寫(xiě)出死循環(huán)”這樣的“特例”。
  • 每行代碼的效率幾乎不可能相同。試想一個(gè)i++和一個(gè)方法調(diào)用,他們的性能開(kāi)銷(xiāo)怎么可能相同呢?再者,這個(gè)特性并非是“高級(jí)語(yǔ)言”特有的,連CPU指令也是一樣(以后我們?cè)賮?lái)詳談這個(gè)問(wèn)題)。

  其實(shí)這就是目前編程工作中不可能回避的現(xiàn)狀,那就是高級(jí)語(yǔ)言并不直接反映出機(jī)器的執(zhí)行過(guò)程。同時(shí),我們不能從代碼表面的簡(jiǎn)短程度來(lái)判斷程序效率的高低。正如那位朋友所談,影響程序的關(guān)鍵因素之一是算法的選擇,但我不同意他說(shuō)算法優(yōu)化的關(guān)鍵在于“減少語(yǔ)句”。從一定程度上講,選擇高效的算法的確是為了減少指令執(zhí)行的“總量”,但它并不是如那篇文章所說(shuō)通過(guò)“少一些變量”,“少一些判斷”來(lái)進(jìn)行的,而是在于大幅的邏輯改變來(lái)減少總體的操作。

  事實(shí)上,我們很容易便能舉出代碼簡(jiǎn)短,但是性能較差的算法。就拿最常見(jiàn)的排序算法來(lái)說(shuō),冒泡排序不可謂不簡(jiǎn)單:

public void BubbleSort(int[] array)
{
for (int i = array.Length - 1; i >= 0; i--)
{
for (int j = 1; j <= i; j++)
{
if (array[j - 1] > array[j])
{
int temp = array[j - 1];
array[j
- 1] = array[j];
array[j]
= temp;
}
}
}
}

it知識(shí)庫(kù)淺談代碼的執(zhí)行效率(1):算法是關(guān)鍵,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 秋霞av伦理片在线观看 | 亚洲国产精品无码AV久久久 | 动漫美女无衣 | 麒麟色欧美影院在线播放 | 国产亚洲精品字幕在线观看 | 空姐厕所啪啪啪 | 亚洲蜜桃AV色情精品成人 | 国产精品永久在线 | 亚洲另类国产综合在线 | 国产午夜精品久久久久九九 | 成人天堂资源WWW在线 | 91欧洲在线视精品在亚洲 | 樱花草在线影视WWW日本动漫 | 黄色大片aa | 耽肉高h喷汁呻吟 | 国产AV视频二区在线观看 | 国产精品亚洲精品爽爽 | 强壮的公次次弄得我高潮韩国电影 | 啊灬啊别停灬用力啊老师 | AV无码久久无遮挡国产麻豆 | 亚洲中文字幕欧美自拍一区 | 2018久久视频在线视频观看 | 大香伊人久久精品一区二区 | 2012中文字幕在线动漫电影 | chinese国语露脸videos | 俄罗斯17vidio | 很黄很色60分钟在线观看 | 久久精品无码成人国产毛 | 2017最新伦理伦理片67 | 近亲乱中文字幕 | 迅雷成人下载 | 老司机福利在 线影院 | 古月娜下面好紧好爽 | 日韩内射美女人妻一区二区三区 | 女人久久WWW免费人成看片 | 色综合精品无码一区二区三区 | 最近中文字幕完整版免费 | 欧美最猛性XXX孕妇 欧美最猛性xxxxx亚洲精品 | 亚洲视频中文字幕在线 | 一个人的视频在线观看免费观看 | 免费精品一区二区三区AA片 |