Цитата(volvo @ 29.10.2009 9:34)
Если не внести это исправление, то вполне возможно (и даже вероятнее всего), что это скажется на производительности отрицательно. Миром byte, integer и longint, andriano, реальные программы не ограничены. Вот понадобится мне работать со своим типом данных, размером байт в 500-700, и что?
Видишь ли,
volvo, универсального решения пригодного на все случаи жизни, в природе не существует. Я, например, не видел автомобиля, пригодного для того, чтобы развозить пицу по узеньким улочкам, использовать в качестве карерного самосвала, а также для перевозки пассажиров.
С программаи чуть проще - как оно там внутри устроено, никто не видит, а несколькомегагерцовый процессор в большинстве случаев зажует любую неоптимальность, что не заметишь. Правда, не всегда. Особенно, если данная неоптимальность угнездилась в теле самого вложенного цикла.
Увы, сегодня все большую популярность приобретает метод программирования copy/paste, для которого, естественно, универскальность много важнее оптимальности.
Я же консерватор, привык писать код ручками. Поэтому для каждой конкретной задачи выбираю тот путь, который соответствует именно ей, а не как можно более широкому кругу хотя бы отдаленно сходных задач.
Если нужно найти максимум, я ищу ТОЛЬКО максимум. Еслм мне нужен индекс, - ищу индекс (не забывая, правда, заодно запомнить и максимум - чтобы было с чем сравнивать). Ну а если у нас есть структура байт эдак в 500-700, то поступаю по обстановке. Если скажем, у меня есть массив структур, в которых описаны ФИО, год рождения, место работы, тарифный разряд и т.д., и мне нажо найти человека, я буду запоминать индекс. А если мне нужно узнать лишь максимальны рост, то я и буду искать ТОЛЬКО рост.
В подавляющем большинстве случаев операция сравнения на больше/меньше для структур объемом 500-700 байтов не определена. И проводится по некоторому полю этой структуры, тип которого допускает такую операцию. Соответственно, в некоторых случаях (ни в коей мере не утверждаю, что во всех) вполне достаточно запоминать лишь это поле.
Зачем делать лишнюю работу?
Цитата
Да и про негативное влияние на производительность при работе с индексами - тоже бабушка надвое сказала.
Спорить не буду. В том числе и по указанной тобой причине: на разных архитектурах один и тот же код может вести себя по-разному.
Добавлено через 3 мин. Цитата(Lapp @ 29.10.2009 15:15)
Когда человеку потребуется скорость - тогда будет выжимать все возможное. Пока же такой цели не ставилось.
Ну да, сначала научим человека программировать, а потом будем переучивать программировать правильно...
Цитата
Когда спрашивается про "макс/мин элемент массива", я всегда сомневаюсь, что же именно хотят: его значение или индекс. Предпочитаю быть готовым ко всему.
Да, тяжело решать задачу, смысла которой не понимаешь.