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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

求助,關(guān)于算法的時(shí)間復(fù)雜度問題?該怎么去運(yùn)用呢

求助,關(guān)于算法的時(shí)間復(fù)雜度問題?該怎么去運(yùn)用呢

倚天杖 2021-06-02 07:07:20
public static void xxxx(int [] a)for (int i = 0; i < a.length - 1; i++) {int posMin = i;for (int k = i + 1; k < a.length; k++) {if (a[posMin] > a[k]) posMin = k;}if (posMin != i) swap(a, i, posMin);}}請(qǐng)問一下這個(gè)算法的時(shí)間復(fù)雜度是多少? 每一個(gè)循環(huán)分別是多少? 并且說一下為什么..謝謝!!
查看完整描述

2 回答

?
汪汪一只貓

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

這個(gè)算法的時(shí)間復(fù)雜度是O(a.length^2)
當(dāng)i = 0;子循環(huán)執(zhí)行a.length-1
當(dāng)i = 1;子循環(huán)執(zhí)行a.length-1-1

當(dāng)i = j;子循環(huán)執(zhí)行a.length-1-j次
依次類推把它們加起來:知這個(gè)算法的時(shí)間復(fù)雜度是O(a.length^2)

查看完整回答
反對(duì) 回復(fù) 2021-06-07
?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊

內(nèi)循環(huán)
for (int k = i + 1; k < a.length; k++) //O(N)// N=a.length;
{
if (a[posMin] > a[k]) //一次比較 合計(jì) N-1次比較
posMin = k; // 0 ~1 次賦值 合計(jì) 0~ N-1次賦值
}

外循環(huán)
0~1 次交換(每個(gè)交換3次賦值) 總計(jì)1~N-1次 最差N-1次交換
平均的為 O(N^2)
如果,最多N-1次交換
每一輪內(nèi)循環(huán),進(jìn)行了N-1次比較;
總的比較次數(shù)為 (N-1) *(N-1) =(N-1)^2
所以為O(N^2)
改進(jìn)的內(nèi)循環(huán)
for (int k = i + 1; k < a.length; k++) //O(N)// N=a.length;
{
if (a[posMin] > a[k]) //一次比較 合計(jì) N-1次比較
posMin = k; // 0 ~1 次賦值 合計(jì) 0~ N-1次賦值

else break;
}

改進(jìn)的也為O(N^2),但是實(shí)際運(yùn)行,比原來要快多了!因?yàn)?排好序時(shí)為O(N),內(nèi)循環(huán),只進(jìn)行一次比較;接近排好序的也要快得多,只有接近逆序的才是O(N^2)



查看完整回答
反對(duì) 回復(fù) 2021-06-07
  • 2 回答
  • 0 關(guān)注
  • 413 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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