Как отметил Стивен, фактическая алгоритмическая сложность упрощена до O(N^2)
, но, поскольку ваш вопрос касался измерения количества выполнений, я постараюсь подсчитать их для вас.
for (int i = 0; i < n; i++){
for (int j = i; j < n; j++){
sum += i;
}
}
Во-первых, внешний цикл
int i=0
будет выполнен только один раз.
i < n
будет выполнено n+1
раз
i++
будет выполнено n
раз
Поэтому у нас есть 2n+2
выполнений для внешнего цикла.
Давайте сначала кое-что проясним. Внешний цикл будет выполняться n
раз, а внутренний цикл - n/2
раз (в среднем). Поэтому каждая инструкция во внутреннем цикле будет выполнена n * n/2 = (n^2)/2
раз.
Внутренний цикл
int j = i
будет выполнен n
раз (помните, что он в цикле)
j< n
будет выполнен n+1 * n/2 = (n^2)/2 + n/2
times
j++
будет выполнено n*(n/2) = n^2/2
times
Теперь запомните, что каждая инструкция во внутреннем цикле будет выполняться (n^2)/2
раз.
sum += i
- это в основном 2 выполнения, которые будут выполняться n^2/2
раз каждое. Таким образом, это добавляет еще n^2
выполнений
. Всего их добавляем: (2n + 2) + n + (n^2)/2 + n/2 + (n^2)/2 + n^2 = 2n^2 + (7/2)n + 2
. Добавляя инструкции перехода, которые n
для внешнего цикла и n^2/2
для внутреннего цикла, мы получить общее количество (5/2)n^2 + (9/2)n + 2
.
Они не то, где Вы думаете, что они, GAE помещает статическое содержание в GoogleFS, который эквивалентен из CDN. Идея состоит в том, что статическое содержание предназначено, чтобы быть поданным непосредственно Вашим пользователям и не действию как хранилище файлов, которым можно управлять. Кроме того, GAE имеет 1K предел файла, и было бы трудно управлять этим правилом на основе политик, если Вы могли бы управлять своим статическим хранилищем файлов.
Вы не можете получить доступ к файлам, загруженным как статическое содержание программно - они не установлены на сервере наряду с Вашим приложением, скорее они поданы непосредственно. Если действительно необходимо получить доступ к ним, можно удалить статический обработчик файлов и служить им сами.
Вот проект, которые позволяют Вам просмотреть свои статические файлы: http://code.google.com/p/appfilesbrowser/
И вот, должен видеть список рецептов для appengine: http://appengine-cookbook.appspot.com/ (я нашел о том проекте здесь когда-то назад),