Задача: Вычисление минимального / максимального значения
Исходник: Минимальное значение массива с помощью маркера, язык: C# [code #93, hits: 7545]
автор: this [добавлен: 05.03.2006]
  1. static float MarkerMin(float[] a)
  2. {
  3. int i = 0, n = a.Length;
  4. float min = a[0];
  5.  
  6. /* Меняем размер массива, чтобы добавить
  7. * в конец элемент a[n], который будет являться
  8. * маркером
  9. */
  10. Array.Resize(ref a, n + 1);
  11. while (i < n)
  12. {
  13. min = a[i];
  14. a[n] = min;
  15. i++;
  16. while (a[i] > min) i++;
  17. }
  18. return min;
  19. }
Для введения маркера, т.е. элемента a[n], приходится принудительно менять размер массива методом Array.Resize(), который поддерживается начиная с .NET Framework version 2.0, поэтому будьте осторожны.

Обратите внимание на то, что задача решается без использования оператора if.
Тестировалось на: MS Visual Studio 2005, .NET Framework 2.0

+добавить реализацию