Транспонирование матрицы на магнитную ленту - PullRequest
1 голос
/ 28 декабря 2011

Программирование жемчужин Задача 7 - перенести матрицу 4000 x 4000, хранящуюся на магнитной ленте .
Я решил просто использовать временную переменную и поменять местами a[i][j] и a[j][i].
Приведенное автором решение меня немного смутило. Он говорит, что мы должны:

  1. Предварительно добавьте индексы строк и столбцов к каждому
  2. сортировать записи в матрице по строкам
  3. удалить добавленные индексы.

Почему вы должны пройти через столько проблем, чтобы сделать это? Это как-то связано с магнитными лентами?

Ответы [ 2 ]

1 голос
/ 03 декабря 2013

Я думаю, что смысл этого упражнения заключается в следующем.

  1. Для компьютера в этом возрасте не было достаточно ОЗУ для хранения матрицы с таким размером.Таким образом, предложенный вами способ обмена не может быть осуществимым.Чтобы транспонировать такую ​​большую матрицу, следует использовать внешнюю память, то есть магнитную ленту.

  2. Однако чтение и запись лент назад и вперед довольно медленные.Но ленты являются серийным устройством хранения.Таким образом, чтение и запись в последовательном режиме могут сэкономить много времени.

  3. Сортировка слиянием очень подходит для такого хранилища сериализации благодаря тому, как она обращается к элементам, как сказано в этом страница википедии .Поэтому я считаю, что «системная сортировка на магнитной ленте» означала сортировку слиянием на ленте.

Учитывая все вышеперечисленные моменты, я думаю, вы можете понять это упражнение.

1 голос
/ 31 декабря 2011

Я думаю, что магнитные ленты означают: чтобы найти один определенный элемент, вы должны пройти от начала до этого элемента.

Но мне трудно понять, что такое системная сортировка на магнитной ленте и почему она работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...