Integer: FindMedian(Integer: array[])
For i = 0 To array.Length - 1
// Find the number of values greater than and less than array[i].
Integer: num_larger = 0
Integer: num_smaller = 0
For j = 0 To array.Length - 1
If (array[j] < array[i])
Then num_smaller = num_smaller + 1
If (array[j] > array[i])
Then num_larger = num_larger + 1 Next j
If (num_smaller = num_larger)
Then Return array[i]
End If
Next i
End FindMedian
Теперь о сложности алгоритма: автор говорит:Основные алгоритмы книга, уточнение требуется
Если массив содержит N значений, внешняя Для КОНТУРА выполняется N раз. Для каждой из этих итераций внутренний цикл For j выполняет N раз. Это означает, что шаги внутри внутреннего цикла выполняют N × N = N раз, предоставляя алгоритму время выполнения O (N).
Я думаю, что сложность должна быть O (N^2). Я ошибаюсь?
Можете ли вы поместить некоторые символы в код? Он отображается как одна строка. –
Конечно, я уже на нем. Я опубликовал приложение SO android, которое все испортило. –
Теперь он должен быть отступом на 4 символа. –