2016-09-09 2 views
-5

У нас есть следующие 2 фрагмента кода в c, которые выполняют ту же задачу.Какой код быстрее?

КОД # 1:

int b = 0; 
for (int i = 0; i < len; i++) 
{ 
    if (x1 == x0[i]) 
    { 
     if (y1 == y0[i]) 
     { 
      b = 1; 
      break; 
     } 
    } 
} 

КОД # 2:

int b = 0; 
for (int i = 0; i < len; i++) 
{ 
    if (x1 == x0[i] && y1 == y0[i]) 
    { 
     b = 1; 
     break; 
    } 
} 

Что быстрее КОД # 1 или КОД # 2? Я действительно искал ответ в интернете, но ничего не нашел.

+1

Итак, почему мы должны делать домашнее задание? Profile/benchmark, читайте циклы подсчета кода машины/ассемблера. – Olaf

+0

Это зависит от того, как вселенная чувствует себя в этот день. Выберите тот, который имеет наибольший смысл для ситуации. – 4castle

+0

Это не моя домашняя работа. Я действительно искал ответ в Интернете, но ничего не нашел. –

ответ

0

Отсутствует!

Оба они имеют одинаковый код.
Они написаны по-разному, но для достижения результата выполняйте точные инструкции и сравнения, поэтому они одинаковы.
Таким образом, ни один из них не работает быстрее, чем другой.

+0

... предполагая любой разумно современный оптимизирующий компилятор, который может видеть, что они идентичны. –

+0

На самом деле нет, даже не оптимизированный компилятор/интерпретатор заканчивается f (n) = O (n) и будет выполнять одинаковое количество итераций при одном и том же вводе. Даже если есть разница в команде +/- 1 или так, по-прежнему остается константой K, которая никак не повлияет на производительность. –