存储数组元素的时间复杂度

时间:2015-09-04 12:21:16

标签: java

这是我的计划,我能够部分地获得时间复杂性,任何人都可以帮助我:

我能够得到其中一些,但任何人都可以验证我的方法是否正确

package sd;

public class Max {

    public static void main(String args[]) {
        int i;
        int large[] = new int[5];
        int array[] = { 33, 55, 13, 46, 87, 42, 10, 34, 43, 56 };
        int max = 0, index = 0;

        // O(5)
        for (int j = 0; j < 5; j++) {

            max = array[0]; // Assuming max to be first element

            // Comparing 1st element with max O(n)
            for (i = 1; i < array.length; i++) {
                if (max < array[i]) {
                    max = array[i]; // Replace if greater
                    index = i;
                }
            }
            large[j] = max;
            array[index] = Integer.MIN_VALUE; // Find max and replace with least
                                                // possible value to avoid
                                                // duplicate max

            System.out.println("Largest 5 amoung 10 : " + large[j]); // Time
                                                                        // complexity:
                                                                        // O(5)
                                                                        // *
                                                                        // O(n)
                                                                        // =
                                                                        // O(n)
        }
    }

}

1 个答案:

答案 0 :(得分:0)

这里的复杂性是O(5N)

有关查找复杂性的更多信息,请检查this question