簡體   English   中英

JAVA:BigO算法-equalsIgnoreCase和CompareTo

[英]JAVA: BigO algorithm - equalsIgnoreCase and CompareTo

BigO算法適用於:

//O(N)
public boolean isSameName(Candidate otherCan) {
    return this.name.equalsIgnoreCase(otherCan.getName());
}

//O(N)
public int compareTo(Candidate otherCan) {
    return this.name.compareToIgnoreCase(otherCan.getName());
}

//O(N)
public int getTotalVotes() {
    int t = 0;
    for(int i = 0; i < 4; i++) {
        t += stateVotes[i];
    }
    return t;
}

//O(1)
public Candidate(String name) {
    this.name = name;
}

您可以使用BigO算法嗎?還是僅用於循環和數組? 那些合適嗎?

您的問題有點令人困惑,因為每段代碼都有時間和空間的復雜性。 根據定義,代碼花費一些時間,並且該代碼的數據使用一定的空間(即使該時間/空間為零)。

就細節而言,前兩個是否為O(N)取決於Java中的基礎代碼,但這可能是正確的。

對於第四個字符串分配,這是一個參考副本,即O(1)

但是,第三個不是 O(N)因為實際上不涉及N 無論stateVotes的大小如何,它都會精確地迭代四次,因此應為O(1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM