нахождение локального минимума матрицы NxN с алгоритмом Порядка N в наихудшем случае
Как найти локальный минимум матрицы NxN без алгоритма and O N^2, как показано ниже. Время уходит навсегда, Когда N становится большим. Мне нужен алгоритм для B Порядка N в худшем случае.
int row = 0; int column = 0; Random random = new Random(); int[,] matrix = new int[10, 10]; for (int r = 0; r < 10; r++) { for (int c = 0; c < 10; c++) { int randomNumber = random.Next(0, 100); matrix[r, c] = randomNumber; } } int min = 100; Stopwatch timer = new Stopwatch(); timer.Start(); for (int i = 0; i < matrix.GetLongLength(0); i++) { for (int j = 0; j < matrix.GetLongLength(1); j++) { if (matrix[i, j] < min) { min = matrix[i, j]; } } } timer.Stop(); double time = timer.ElapsedMilliseconds; Console.WriteLine(time);
Sergey Alexandrovich Kryukov
Что такое "локальный минимум"? Как вы думаете, есть ли "глобальный" и "локальный" минимум? :-)
--СА
Andreas Gieriet
Если скорость действительно важно, что вы можете подумать о программировании этого на каком-нибудь более подходящем языке. Может Быть, C/C++? Сложность по-прежнему NxN, но может быть меньше накладных расходов.