Решить задачу на C++
Именно так.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
atavin-ta А зачем 2 раза сравнивать ? Можно написать:
for(i = 0; i < n-1; ++i)
{
for(int i1 = i+1; i1 < n; ++i1)
{
if(arr == arr[i1])
{
++m;
}
}
}
Тогда упрощается if и мы опустили преждевременную пессимизацию в виде постфиксной операции ++.
for(i = 0; i < n-1; ++i)
{
for(int i1 = i+1; i1 < n; ++i1)
{
if(arr == arr[i1])
{
++m;
}
}
}
Тогда упрощается if и мы опустили преждевременную пессимизацию в виде постфиксной операции ++.
Airhand писал(а):atavin-ta А зачем 2 раза сравнивать ? Можно написать:
for(i = 0; i < n-1; ++i)
{
for(int i1 = i+1; i1 < n; ++i1)
{
if(arr == arr[i1])
{
++m;
}
}
}
Тогда упрощается if и мы опустили преждевременную пессимизацию в виде постфиксной операции ++.
а по мне так главное корректно работало))) и все)))
Согласен. При i1<i и arr=arr[i1] операция ++m уже выполена. Но тогда лучше так:" писал(а):зачем 2 раза сравнивать ? Можно написать:
Код: Выделить всё
for (i=n-1; i>0; --i)
{
for (i1=i-1; i>=0; --i1)
{
if (arr[i]==arr[i1])
{
++m;
}
}
}
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
atavin-ta Это уже оптимизация. А я говорил об исключении преждевременной пессимизации. Что внутренний цикл жрёт слишком много памяти или выполняется медленно ? Зачем тогда выносить временную переменную i1 за цикл ? Незачем. Иначе нужно провести исследование и доказать, что данная часть программы является "бутылочным горлышком".
Airhand писал(а):atavin-ta А я говорил об исключении преждевременной пессимизации.
Airhand, для общего развития, поясните пожалуйста смысл словосочетания "преждевременная пессимизация". А то смысл не совсем понятен.
Albor Вы не знвете, что такое "преждевременная". Или не знаете, что такое "пессимизм" ? Что объяснить то ?
Airhand писал(а):Albor Вы не знвете, что такое "преждевременная". Или не знаете, что такое "пессимизм" ? Что объяснить то ?
Что такое пессимизм я знаю или, во всяком случае, догадываюсь, я не могу связать данное выражение с префиксной и постфиксной формой оператора ++. Почему постфиксная форма пессимистичнее префиксной. Как по мне, то если хочешь что-то объяснить - нужно использовать понятный язык. Если мысль можно выразить по-русски, то лучше это сделать так. Airhand, не примнимайте это как упрёк, вы привыкли так думать - это ваше. Мне непонятно - я спросил.
Albor А вы реализуйте префиксный и постфиксный операторы и всё поймёте.
Airhand писал(а):Albor А вы реализуйте префиксный и постфиксный операторы и всё поймёте.
Airhand, я прекрасно знаю чем они отличаюся, и разница в использовании того или иного будет при перегрузке для больших объектов из-за создания временной копии в постфиксной форме, а говорить о том, что одно хуже (конечно, если я правильно понял слово пессимизация) другого в контексте представленных задач, где операторы используются для типа в 4 байта считаю нестоящим акцентирования на этом внимания.
PS Один авторитетный программист в нашем городе как-то сказал, что с точки зрения заказчика дешевле добавить памяти себе в комп, чем платить программисту за оптимизацию кода (это было сказано в контексте экономии памяти).