Який великий час виконання даного коду?

public static int Count( List lst1, List lst2)
{
    Iterator itr1 = lst1.iterator();

    int count=0;
    while ( itr1.hasNext() )
    {
        Integer x = itr1.next();
        Iterator itr2 = lst2.iterator();
        while ( itr2.hasNext() )
            if ( x.equals( itr2.next()) )
                count++;
    }

    return count;
}
  1. Якщо для списку lst1 та lst2 передано ArrayList.
  2. Якщо LinkedList передано для lst1 та lst2.

Я йду на обох, тому що для кулака в той час як цикл O (n) , то secong, а O (n) , а також if O (n) = O n ^ 3) . Я не знаю, якщо я помиляюся чи ні?

0
@nachokk Відступ вказує вам, якщо це правильно.
додано Автор EJP, джерело
n = list1.size m = list2.size -> O (n * m), ви повинні використовувати BRACES у цьому випадку для читабельності
додано Автор nachokk, джерело
@Конрад Рудольф дійсно? другий, коли відкрито і кінець занадто ясно? я повинен думати 5 секунд, щоб зрозуміти, де починається і закінчується
додано Автор nachokk, джерело
@Конрад Рудольф, правда, тепер це правильно, це легше читати, але те, що я казав, полягає в тому, що ви повинні з'ясувати, де закінчується другий час.
додано Автор nachokk, джерело
@nachokk я не погоджуюсь. Правильне відступ має значення. Брекети тут не відіграють жодної ролі для читання; якщо взагалі вони стосуються лише правильності (але я стверджував це і в іншому місці).
додано Автор Konrad Rudolph, джерело
@nachokk я серйозно не вірю тобі. Відступ значно більш помітний, ніж фігурні дужки (саме тому важливо відслідковувати послідовно, інакше чому турбуватися?). Ніхто, здається, не має ніяких проблем з читанням Python (хоча деякі з них ставляться до його безповоротного стилю - але не через проблеми читання).
додано Автор Konrad Rudolph, джерело

8 Відповіді

Це O (розмір (lst1) * розмір (lst2)) . Для всіх x i в lst1 ви порівнюєте x i для кожного елемента в lst2 . У цьому випадку точніше Θ (розмір (lst1) * розмір (lst2)) , оскільки він обмежений як згори, так і нижче за допомогою size (lst1) * size (lst2) .

6
додано

Це O (розмір (lst1) * розмір (lst2)) . Для всіх x i в lst1 ви порівнюєте x i для кожного елемента в lst2 . У цьому випадку точніше Θ (розмір (lst1) * розмір (lst2)) , оскільки він обмежений як згори, так і нижче за допомогою size (lst1) * size (lst2) .

6
додано

Це O (розмір (lst1) * розмір (lst2)) . Для всіх x i в lst1 ви порівнюєте x i для кожного елемента в lst2 . У цьому випадку точніше Θ (розмір (lst1) * розмір (lst2)) , оскільки він обмежений як згори, так і нижче за допомогою size (lst1) * size (lst2) .

6
додано

Це O (розмір (lst1) * розмір (lst2)) . Для всіх x i в lst1 ви порівнюєте x i для кожного елемента в lst2 . У цьому випадку точніше Θ (розмір (lst1) * розмір (lst2)) , оскільки він обмежений як згори, так і нижче за допомогою size (lst1) * size (lst2) .

6
додано

Безсумнівно, @steven дав хорошу математичну репутацію. Великий О, що відбувається тут, - це множення розмірів списків, що забезпечують метод.

Тому що кожен елемент в list1 порівнюється з кожним елементом у list2 . Таким чином, цикл працює за допомогою SizeofList1 * SizeOfLit2 .

Ось початківець гід з циклами . Сподіваюся, ви отримаєте це.

0
додано

Безсумнівно, @steven дав хорошу математичну репутацію. Великий О, що відбувається тут, - це множення розмірів списків, що забезпечують метод.

Тому що кожен елемент в list1 порівнюється з кожним елементом у list2 . Таким чином, цикл працює за допомогою SizeofList1 * SizeOfLit2 .

Ось початківець гід з циклами . Сподіваюся, ви отримаєте це.

0
додано

Безсумнівно, @steven дав хорошу математичну репутацію. Великий О, що відбувається тут, - це множення розмірів списків, що забезпечують метод.

Тому що кожен елемент в list1 порівнюється з кожним елементом у list2 . Таким чином, цикл працює за допомогою SizeofList1 * SizeOfLit2 .

Ось початківець гід з циклами . Сподіваюся, ви отримаєте це.

0
додано

Безсумнівно, @steven дав хорошу математичну репутацію. Великий О, що відбувається тут, - це множення розмірів списків, що забезпечують метод.

Тому що кожен елемент в list1 порівнюється з кожним елементом у list2 . Таким чином, цикл працює за допомогою SizeofList1 * SizeOfLit2 .

Ось початківець гід з циклами . Сподіваюся, ви отримаєте це.

0
додано
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників