<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.atp-fivt.org/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80</id>
	<title>Вектор - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.atp-fivt.org/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80"/>
	<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80&amp;action=history"/>
	<updated>2026-10-16T16:52:43Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80&amp;diff=238&amp;oldid=prev</id>
		<title>Algocourselecturenotes: Поправлены заголовки</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80&amp;diff=238&amp;oldid=prev"/>
		<updated>2020-03-09T11:25:40Z</updated>

		<summary type="html">&lt;p&gt;Поправлены заголовки&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:25, 9 марта 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Вектор ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Операции ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;== Операции &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Вектор - структура данных, поддерживающая следующие операции:&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Вектор - структура данных, поддерживающая следующие операции:&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Доступ по индексу&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Доступ по индексу&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l8&quot;&gt;Строка 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Вышеперечисленные операции должны работать за &amp;#039;&amp;#039;&amp;#039;O(1)&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Вышеперечисленные операции должны работать за &amp;#039;&amp;#039;&amp;#039;O(1)&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;== Способы реализации вектора &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Способы реализации вектора ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;=== Способ 1 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Способ 1 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Если известно, что размер структуры в любой момент времени не превышает &amp;#039;&amp;#039;K&amp;#039;&amp;#039;, то можно хранить массив на &amp;#039;&amp;#039;K&amp;#039;&amp;#039; элементов&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Если известно, что размер структуры в любой момент времени не превышает &amp;#039;&amp;#039;K&amp;#039;&amp;#039;, то можно хранить массив на &amp;#039;&amp;#039;K&amp;#039;&amp;#039; элементов&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Используемая память&amp;#039;&amp;#039; = $ \Theta(K) $ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Используемая память&amp;#039;&amp;#039; = $ \Theta(K) $ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;=== Способ 2 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Способ 2 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Будем хранить массив размера &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;, который в дальнейшем будем реаллоцировать. Пусть &amp;#039;&amp;#039;S&amp;#039;&amp;#039; - размер структуры.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Будем хранить массив размера &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;, который в дальнейшем будем реаллоцировать. Пусть &amp;#039;&amp;#039;S&amp;#039;&amp;#039; - размер структуры.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l21&quot;&gt;Строка 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2)&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; гораздо больше, чем &amp;#039;&amp;#039;S&amp;#039;&amp;#039;, тогда вектор занимает сильно больше памяти, чем требуется.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2)&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; гораздо больше, чем &amp;#039;&amp;#039;S&amp;#039;&amp;#039;, тогда вектор занимает сильно больше памяти, чем требуется.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;==== Решение проблемы 1 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Решение проблемы 1 ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;S&amp;#039;&amp;#039; = &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;, поступает запрос на добавление элемента. Тогда увеличиваем &amp;#039;&amp;#039;bufffer&amp;#039;&amp;#039; в 2 раза: создаём массив в 2 раза больше, копируем в первую половину нового массива весь старый.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;S&amp;#039;&amp;#039; = &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;, поступает запрос на добавление элемента. Тогда увеличиваем &amp;#039;&amp;#039;bufffer&amp;#039;&amp;#039; в 2 раза: создаём массив в 2 раза больше, копируем в первую половину нового массива весь старый.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Время операции&amp;#039;&amp;#039;&amp;#039;: $ \Theta(&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;) $ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Время операции&amp;#039;&amp;#039;&amp;#039;: $ \Theta(&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;) $ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;==== Решение проблемы 2 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Решение проблемы 2 ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Если &amp;#039;&amp;#039;S&amp;#039;&amp;#039; меньше &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; более чем в 4 раза, то уменьшаем &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; в 2 раза&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Если &amp;#039;&amp;#039;S&amp;#039;&amp;#039; меньше &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; более чем в 4 раза, то уменьшаем &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; в 2 раза&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Время операции&amp;#039;&amp;#039;&amp;#039;: $ \Theta(&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;) $ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Время операции&amp;#039;&amp;#039;&amp;#039;: $ \Theta(&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;) $ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;==== Оценка времени &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Оценка времени ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Таким образом, $ \frac{1}{4}&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; \leq &amp;#039;&amp;#039;S&amp;#039;&amp;#039; \leq &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; $, а значит &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; = O(&amp;#039;&amp;#039;S&amp;#039;&amp;#039;)&amp;lt;br&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Таким образом, $ \frac{1}{4}&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; \leq &amp;#039;&amp;#039;S&amp;#039;&amp;#039; \leq &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; $, а значит &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; = O(&amp;#039;&amp;#039;S&amp;#039;&amp;#039;)&amp;lt;br&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Амортизированно, требуемые операции выполняются за O(1), то есть если изначально структура пустая, то любые &amp;#039;&amp;#039;m&amp;#039;&amp;#039; операций выполняются за O(&amp;#039;&amp;#039;m&amp;#039;&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Амортизированно, требуемые операции выполняются за O(1), то есть если изначально структура пустая, то любые &amp;#039;&amp;#039;m&amp;#039;&amp;#039; операций выполняются за O(&amp;#039;&amp;#039;m&amp;#039;&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pi_wiki-wiki:diff:1.41:old-236:rev-238:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Algocourselecturenotes</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80&amp;diff=236&amp;oldid=prev</id>
		<title>Algocourselecturenotes: Новая страница: «== Вектор ==  === Операции === Вектор - структура данных, поддерживающая следующие операции:&lt;br&gt;…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80&amp;diff=236&amp;oldid=prev"/>
		<updated>2020-03-08T10:46:23Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «== Вектор ==  === Операции === Вектор - структура данных, поддерживающая следующие операции:&amp;lt;br&amp;gt;…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Вектор ==&lt;br /&gt;
&lt;br /&gt;
=== Операции ===&lt;br /&gt;
Вектор - структура данных, поддерживающая следующие операции:&amp;lt;br&amp;gt;&lt;br /&gt;
*Доступ по индексу&amp;lt;br&amp;gt;&lt;br /&gt;
*Добавление в конец структуры&amp;lt;br&amp;gt;&lt;br /&gt;
*Удаление из конца структуры&amp;lt;br&amp;gt;&lt;br /&gt;
Вышеперечисленные операции должны работать за &amp;#039;&amp;#039;&amp;#039;O(1)&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Способы реализации вектора ===&lt;br /&gt;
==== Способ 1 ====&lt;br /&gt;
Если известно, что размер структуры в любой момент времени не превышает &amp;#039;&amp;#039;K&amp;#039;&amp;#039;, то можно хранить массив на &amp;#039;&amp;#039;K&amp;#039;&amp;#039; элементов&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Используемая память&amp;#039;&amp;#039; = $ \Theta(K) $ &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Способ 2 ====&lt;br /&gt;
Будем хранить массив размера &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;, который в дальнейшем будем реаллоцировать. Пусть &amp;#039;&amp;#039;S&amp;#039;&amp;#039; - размер структуры.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Возникает 2 проблемы:&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;#039;&amp;#039;S&amp;#039;&amp;#039; = &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;: в этом случае нам некуда добавлять новые элементы&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; гораздо больше, чем &amp;#039;&amp;#039;S&amp;#039;&amp;#039;, тогда вектор занимает сильно больше памяти, чем требуется.&lt;br /&gt;
&lt;br /&gt;
===== Решение проблемы 1 =====&lt;br /&gt;
&amp;#039;&amp;#039;S&amp;#039;&amp;#039; = &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;, поступает запрос на добавление элемента. Тогда увеличиваем &amp;#039;&amp;#039;bufffer&amp;#039;&amp;#039; в 2 раза: создаём массив в 2 раза больше, копируем в первую половину нового массива весь старый.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Время операции&amp;#039;&amp;#039;&amp;#039;: $ \Theta(&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;) $ &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Решение проблемы 2 =====&lt;br /&gt;
Если &amp;#039;&amp;#039;S&amp;#039;&amp;#039; меньше &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; более чем в 4 раза, то уменьшаем &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; в 2 раза&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Время операции&amp;#039;&amp;#039;&amp;#039;: $ \Theta(&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;) $ &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Оценка времени =====&lt;br /&gt;
Таким образом, $ \frac{1}{4}&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; \leq &amp;#039;&amp;#039;S&amp;#039;&amp;#039; \leq &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; $, а значит &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; = O(&amp;#039;&amp;#039;S&amp;#039;&amp;#039;)&amp;lt;br&amp;gt; &lt;br /&gt;
Амортизированно, требуемые операции выполняются за O(1), то есть если изначально структура пустая, то любые &amp;#039;&amp;#039;m&amp;#039;&amp;#039; операций выполняются за O(&amp;#039;&amp;#039;m&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
====== Доказательство амортизированности: cлучай 1 ======&lt;br /&gt;
Между двумя командами &amp;#039;&amp;#039;&amp;#039;push_back&amp;#039;&amp;#039;&amp;#039;, требующими реаллокацию, будет хотя бы &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; операций &amp;#039;&amp;#039;&amp;#039;push_back&amp;#039;&amp;#039;&amp;#039;. Все эти операции потребуют &amp;#039;&amp;#039;&amp;#039;O(&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;)&amp;#039;&amp;#039;&amp;#039; времени, поделим на &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;, и поймём, что в среднем одна операция выполняется за &amp;#039;&amp;#039;&amp;#039;O(1)&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
====== Доказательство амортизированности: cлучай 2 ======&lt;br /&gt;
Между командами &amp;#039;&amp;#039;&amp;#039;push_back&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;pop_back&amp;#039;&amp;#039;&amp;#039;, требующими реаллокацию, будет хотя бы $ \frac{&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;}{2} $ операций &amp;#039;&amp;#039;&amp;#039;pop_back&amp;#039;&amp;#039;&amp;#039;. Все эти операции потребуют &amp;#039;&amp;#039;&amp;#039;O(&amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;)&amp;#039;&amp;#039;&amp;#039; времени, поделим на &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039;, и поймём, что в среднем одна операция выполняется за &amp;#039;&amp;#039;&amp;#039;O(1)&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
====== Доказательство амортизированности: cлучай 3, 4 ======&lt;br /&gt;
Остальные случаи рассматриваются аналогично первым двум.&lt;/div&gt;</summary>
		<author><name>Algocourselecturenotes</name></author>
	</entry>
</feed>