ВУЗ:
Составители:
Рубрика:
12
Теперь видно, что алгоритм состоит из двух частей. Первая часть – работа
с элементами newData с индексами от 0 до 2 включительно, вторая часть –
работа с элементами newData с индексами от 3 до 6 включительно.
Для следующего приближения к обобщенному алгоритму сделаем
следующую модификацию:
int[] data = new int[] { 2, 4, 6, 8, 4, 1, 3, 7 };
int[] newData = new int[data.Length - 1];
int i = 0;
newData[i] = data[i];
i = 1;
newData[i] = data[i];
i = 2;
newData[i] = data[i];
i = 3;
newData[i] = data[i + 1];
i = 4;
newData[i] = data[i + 1];
i = 5;
newData[i] = data[i + 1];
i = 6;
newData[i] = data[i + 1];
В первой и во второй части алгоритма i принимает последовательные
значения. Поэтому эту довольно большую реализацию (по строкам исходного
кода) можно сократить, используя цикл for для получения последовательных
значений.
int[] data = new int[] { 2, 4, 6, 8, 4, 1, 3, 7 };
int[] newData = new int[data.Length - 1];
for (int i = 0; i < 3; i++) {
newData[i] = data[i];
}
for (int i = 3; i < 7; i++) {
newData[i] = data[i + 1];
}
Возникает вопрос о том, в каком диапазоне лежат возможные значения i.
С учетом того, что в алгоритме написано newData[i], то i должен лежать в
диапазоне возможных индексов newData, т. е. от 0 включительно до
newData.Length не включая. Поэтому 7 можно заменить на newData.Length.
int[] data = new int[] { 2, 4, 6, 8, 4, 1, 3, 7 };
int[] newData = new int[data.Length - 1];
for (int i = 0; i < 3; i++) {
newData[i] = data[i];
}
for (int i = 3; i < newData.Length; i++) {
newData[i] = data[i + 1];
}
Теперь вспомним, что 3 – это позиция удаляемого элемента, т. е. delIndex.
Поэтому мы можем заменить 3 на delIndex (естественно введя эту переменную)
int[] data = new int[] { 2, 4, 6, 8, 4, 1, 3, 7 };
int delIndex = 3;
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »