a级毛片免费全部播放-a级毛片免费观看在线播放-a级毛片免费观看网站-a级毛片免费看-国产成人精品在视频-国产成人精品在线

歡迎來(lái)到培訓(xùn)無(wú)憂網(wǎng)!

全國(guó)切換

咨詢熱線 400-001-5729

位置:培訓(xùn)無(wú)憂網(wǎng) > 新聞資訊 > 電腦/IT > c語(yǔ)言 >  C語(yǔ)言學(xué)習(xí)過(guò)程中如何優(yōu)化代碼

C語(yǔ)言學(xué)習(xí)過(guò)程中如何優(yōu)化代碼

來(lái)源:培訓(xùn)無(wú)憂網(wǎng) 發(fā)布人:星星

2022-01-24 11:15:56|已瀏覽:2176次

C語(yǔ)言學(xué)習(xí)過(guò)程中如何優(yōu)化代碼

       編寫(xiě)高效簡(jiǎn)潔的C語(yǔ)言代碼,是許多軟件工程師追求的目標(biāo)。本文就工作中的一些體會(huì)和經(jīng)驗(yàn)做做了一下三個(gè)問(wèn)題,對(duì)其進(jìn)行了優(yōu)化,不對(duì)的地方請(qǐng)各位指教。

       <1>.輸出 int 型數(shù)組a的元素個(gè)數(shù)
       printf("%d\n",_________);
       這里怎么填對(duì)我們來(lái)說(shuō)非常簡(jiǎn)單了,我們一般用的32位機(jī),所以直接寫(xiě) sizeof(a)/4 就可以,開(kāi)始這樣代碼就只適用于32位機(jī),就降低了代碼的移植性,所以可以改為 sizeof(a)/sizeof(int) ,讓系統(tǒng)自行計(jì)算 int 類(lèi)型占用空間。可如果改一下題目,輸出數(shù)組a的元素個(gè)數(shù)呢?這時(shí)數(shù)組的元素類(lèi)型不確定,但是數(shù)組每個(gè)元素的類(lèi)型一定相同,因此只要寫(xiě) sizeof(a)/sizeof(a[0]) 就可以了。
      <2>.int 型數(shù)組a有n個(gè)元素,將數(shù)組從中間一分為二,輸出數(shù)組后半段的起始下標(biāo)
       printf("%d\n",_________);

       很容易可以想到數(shù)組元素個(gè)數(shù)有奇偶之分,那么可以這樣填:(n%2==1)?(n/2+1):(n/2) 這樣寫(xiě)當(dāng)然沒(méi)有錯(cuò),只是有些繁瑣,而且條件運(yùn)算符的三個(gè)部分都要用括號(hào)括起來(lái),否則會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤,這樣的代碼當(dāng)然就不夠好了。那么要怎么寫(xiě)?

       其實(shí)這類(lèi)問(wèn)題可以用數(shù)學(xué)知識(shí)來(lái)解決:n為奇數(shù)時(shí)后半段起始下標(biāo)是 /2+1,為偶數(shù)則是 n/2+0,n為奇數(shù)時(shí)加的1和n為偶數(shù)時(shí)加的0可以看成是他本身對(duì)2取余,所以可以填: /2+(n%2)。好像還是不夠好看,再想一下還可以怎么優(yōu)化呢:一個(gè)奇數(shù)和比它小1的偶數(shù)除以2得到相同的數(shù),那么如果n是奇數(shù), n/2+1 和 (n+1)/2 等價(jià),如果n是偶數(shù), n/2+0 和 (n+1)/2 等價(jià),于是這里可以這樣填了: (n+1)/2。

       再補(bǔ)充說(shuō)一個(gè)小的點(diǎn),在 (n%2==1)?(n/2+1):(n/2) 中 n%2==1 就等價(jià)于 n%2 ,它們的值是一樣的,總結(jié)一下就是n==1等價(jià)于n,而n==0就等價(jià)于!n,這樣寫(xiě)可以避免使用==號(hào)帶來(lái)的容易錯(cuò)寫(xiě)成=賦值號(hào)造成答案錯(cuò)誤的問(wèn)題,提高了代碼的安全性。
       那如果一句代碼是要判斷兩個(gè)數(shù)m與n相等或不等的關(guān)系呢?想一下,如果相等,那么m-n==0,于是判斷相等用!(m-n),判斷不等用(m-n)。
<3>.將數(shù)組a={10,20,30,40,50}輸出k次
       如k=3,輸出:10 20 30 40 50 10 20 30 40 50 10 20 30 40 50 可以這樣寫(xiě):
       for(int loop=0;loop<k;loop++) for(int i=0;i<5;i++) printf("%d ",a[i]);
       這樣的就是常規(guī)思想,用兩層循環(huán)控制輸出,這樣時(shí)間復(fù)雜度就較高,影響程序運(yùn)行的效率,那么其實(shí)可以這樣寫(xiě)的:

       for(int i=0;i<5*k;i++) printf("%d ",a[i%5]);

       這樣就變成了一重循環(huán)啦,降低了時(shí)間復(fù)雜度而且也沒(méi)有提高空間復(fù)雜度,代碼效率自然就變高了。

      注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://www.dedgn.cn/news-id-17704.html 違者必究!部分文章來(lái)源于網(wǎng)絡(luò)由培訓(xùn)無(wú)憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注c語(yǔ)言頻道查看更多,了解相關(guān)專(zhuān)業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問(wèn)老師會(huì)一對(duì)一幫助你規(guī)劃更適合你的專(zhuān)業(yè)課程!
  • 姓名:

  • 手機(jī):

  • 地區(qū):

  • 想學(xué)什么:

  • 培訓(xùn)無(wú)憂網(wǎng)
免 費(fèi) 申 請(qǐng) 試 聽(tīng)
提交申請(qǐng),《培訓(xùn)無(wú)憂網(wǎng)》課程顧問(wèn)老師會(huì)一對(duì)一幫助你規(guī)劃更適合你的專(zhuān)業(yè)課程!

主站蜘蛛池模板: 三级国产在线 | 欧美日韩不卡在线 | 一级片成人 | 一区二区三区国模大胆 | 久久免费视频在线 | 国产精品美女一区二区三区 | 亚洲精品久久久久久久福利 | 午夜一级毛片不卡 | 又黄又爽又刺激的视频 | 欧美第一视频 | 欧美巨乳在线 | 古代级a毛片在线 | 亚洲精品高清在线观看 | 欧美日韩视频一区二区在线观看 | 国产一级片儿 | 国产精品美女视视频专区 | 国产女人伦码一区二区三区不卡 | 黄视频在线免费 | 免费在线观看a级毛片 | 免费永久观看美女视频网站网址 | 国产高清视频免费最新在线 | 欧美一区二区三区gg高清影视 | 国产高清精品自在久久 | 手机看片日韩日韩韩 | 一个人免费看的www 一及 片日本 | 国产做a爰片久久毛片 | 成人在线网| 性感美女一级片 | 成人怡红院视频在线观看 | xxxwww在线播放 | 亚洲国产成人在线 | 日韩在线观看中文字幕 | 亚洲综合色自拍一区 | 午夜精品在线 | 亚洲天堂网视频 | japanese色系国产在线高清 | 国产精品国产三级国产专区5o | 亚洲天堂男人网 | 欧美一区二区三区在线观看免费 | 亚洲综合91 | 久久精品久久精品久久 |