я использую этот сайт как ресурс
http://www.perlmonks.org/?node_id=573138
Я пытаюсь понять нотацию O, и она приводит два примера поиска в двух массивах одного и того же элемента. Первый пример имеет O (n ^ 2), как и второй, однако второй имеет усовершенствование, поэтому он работает быстрее, но все еще поддерживает ту же запись O, я вставлю примеры кода ниже. Что я хотел бы знать, так это то, как они работают, у меня ограниченные знания в области программирования и я чувствую себя наиболее комфортно в Java, я могу понять первое, что я думаю, только два для циклов и проверки, что-то вроде;
for (int i = 0; i < arrarysize ; i++){
for (int j = 0; j < arraysize; j++){
if(getElementFromArray(i).equals(getElementFromArray(j))){
//do something
}
}
}
но то, как работает вторая, мне не подходит, я просто не вижу "улучшения"
for my $i (0 .. $#array) {
for my $j (0 .. $#array) {
next if $j == $i;
# Compare $i, $j
}
}
for my $i (0 .. $#array - 1) {
for my $j ($i + 1 .. $#array) {
# Compare $i, $j
}
}