VB, MS Access, VC++, Delphi, Builder C++ принципы(технология), алгоритмы программирования
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: презентация дипломной работы, отчет по производственной практике
| Добавил(а) на сайт: Памфил.
Предыдущая страница реферата | 8 9 10 11 12 13 14 15 16 17 18 | Следующая страница реферата
For K = 1 To N
' Выполнить какие-либо действия.
Next K
Next J
Next I
End Sub
Sub Fast()
Dim I As Integer
Dim J As Integer
For I = 1 To N
For J = 1 To N
' Выполнить какие-либо действия.
Next J
Next I
End Sub
Sub MainProgram()
Slow
Fast
End Sub
==============5
Сложность рекурсивных алгоритмов
Рекурсивными процедурами (recursive procedure) называются процедуры, вызывающие сами себя. Во многих рекурсивных алгоритмах именно степень
вложенности рекурсии определяет сложность алгоритма, при этом не всегда
легко оценить порядок сложности. Рекурсивная процедура может выглядеть
простой, но при этом вносить большой вклад в сложность программы, многократно вызывая саму себя.
Следующий фрагмент кода содержит подпрограмму всего из двух операторов. Тем
не менее, для заданного N подпрограмма выполняется N раз, таким образом, вычислительная сложность фрагмента порядка O(N).
Sub CountDown(N As Integer)
If N 20 Then
ArraySize = ArraySize –10
ReDim Preserve List(1 To ArraySize)
End If
End Sub
=============20
Для очень больших массивов это решение может также оказаться не самым
лучшим. Если вам нужен список, содержащий 1000 элементов, к которому обычно
добавляется по 100 элементов, то все еще слишком много времени будет
тратиться на изменение размера массива. Очевидной стратегией в этом случае
было бы увеличение приращения размера массива с 10 до 100 или более ячеек.
Тогда можно было бы добавлять по 100 элементов одновременно без частого
изменения размера списка.
Более гибким решением будет изменение приращения в зависимости от размера
массива. Для небольших списков это приращение было бы также небольшим. Хотя
изменения размера массива происходили бы чаще, они потребовали бы
относительно немного времени для небольших массивов. Для больших списков, приращение размера будет больше, поэтому их размер будет изменяться реже.
Следующая программа пытается поддерживать примерно 10 процентов списка
свободным. Когда массив заполняется, его размер увеличивается на 10
процентов. Если свободное пространство составляет более 20 процентов от
размера массива, программа уменьшает его.
При увеличении размера массива, добавляется не меньше 10 элементов, даже
если 10 процентов от размера массива составляют меньшую величину. Это
уменьшает число необходимых изменений размера массива, если список очень
мал.
Const WANT_FREE_PERCENT = .1 ‘ 10% свободного места.
Const MIN_FREE = 10 ‘ Минимальное число пустых ячеек.
Global List() As String ‘ Массив элементов списка.
Global ArraySize As Integer ‘ Размер массива.
Global NumItems As Integer ‘ Число элементов в списке.
Global ShrinkWhen As Integer ‘ Уменьшить размер, если NumItems <
ShrinkWhen.
Рекомендуем скачать другие рефераты по теме: доклад по химии, конспект зима.
Категории:
Предыдущая страница реферата | 8 9 10 11 12 13 14 15 16 17 18 | Следующая страница реферата