第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

就空間/時間復(fù)雜度而言,哪一個更好?

就空間/時間復(fù)雜度而言,哪一個更好?

繁華開滿天機 2022-06-23 10:27:38
就空間/時間復(fù)雜度而言,哪個更好?if (!(N % 2 == 0) || N % 2 == 0 && (N >= 6 && N <= 20)) {  System.out.println("Weird");} if ( N % 2 == 0 && (N >= 2 && N <= 5 || N > 20)) {  System.out.println("Not Weird");}// ORif (!(N % 2 == 0)) {  System.out.println("Weird");} else {  if (N >= 2 && N <= 5) {    System.out.println("Not Weird");  }  if (N >= 6 && N <= 20) {        System.out.println("Weird");  }  if (N > 20) {        System.out.println("Not Weird");  }}       我試圖看看在 Java 中創(chuàng)建 if 語句的最佳方法是否是制作簡單但直接的 if 語句,例如下面的(但有點混亂)或頂部的“整潔”語句。每一個小細(xì)節(jié)都將不勝感激。
查看完整描述

2 回答

?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗 獲得超8個贊

這些是相同的。

Big-O 只有在你有循環(huán)的情況下才會發(fā)揮作用,它們都以恒定的時間運行O(1)。

通常,避免嵌套。我個人更喜歡第一種選擇。但是真的一點區(qū)別都沒有,尤其是短路的原因:

如果!(N % 2 == 0)true在您的第一個示例中,||則將“短路”,這意味著因為它找到了一個真理,它不會評估它的右半部分。這與第二個示例中的 if 語句相同。運算符也是如此&&- 如果遇到單個值,它們會“短路” false,因為它們永遠(yuǎn)無法以這種方式評估為真。

所以,本質(zhì)上,選擇你喜歡的/更具可讀性/邏輯上更連貫的。


查看完整回答
反對 回復(fù) 2022-06-23
?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗 獲得超4個贊

如前所述,兩種情況的空間/時間復(fù)雜度相同。這里的重要因素是理解代碼的復(fù)雜性。這歸結(jié)為在特定情況下的個人判斷。


我不確定我更喜歡哪個,因為我不了解怪異的算法,而且我的偏好取決于這兩種表述對有見識的讀者有多“明顯”——我假設(shè)任何接觸此代碼的人都知道它對 N 意味著什么奇怪。


但在第二種情況下,我更喜歡更少的比較。如果一個子句處理 N <= 5,則下一個替代方案不需要確保 N >= 6。


因此(在偽代碼中)


else if (N <= 1) {

   // no decision according to original code

} else if (N <= 5) {

   print not weird   

} else if (N <= 20) {

   print weird

} else {

   print not weird

}

N是奇怪的還是不奇怪的?那么,第一,else要求避免重復(fù)計算,第二,你的意思是省略對零和負(fù)整數(shù)的考慮嗎?(我提出這個問題的觀點是,我提出的布局清楚地表明我們不會為這種情況做任何事情,并且我正在為說明的清晰性而爭論——目標(biāo)讀者可能不得不懷疑這種明顯的遺漏)


另外,當(dāng)我在吹毛求疵的時候


(!(N % 2 == 0))

通過將其寫為


(N % 2 != 0)


查看完整回答
反對 回復(fù) 2022-06-23
  • 2 回答
  • 0 關(guān)注
  • 112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號