Помощь - Поиск - Пользователи - Календарь
Полная версия: Шестнадцатеричная система счисления
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Rio
Массив чисел, заданных в шестнадцатеричной системе счисления упорядочить по неубыванию не переводя числа в другую систему.
volvo
Rio
Как заданы числа в массиве? Если строками, то просто сортируешь строки по убыванию... Это будет равносильно сортировке самих чисел...
Guest
Пробовал. Не получается. Например: 1, 2, 10 в шестандцатиричной соответственно 1, 2, 16 в десятиричной, если сортировать строками, то получается: 1, 10, 2. А это не правильно.
APAL
Просто надо добавить нули к одноциферным числам.
volvo
Guest
Тогда так: находи, сколько симвопов содержит самая длинная строка, и все остальные строки дополняй до этой длины символами "0" спереди. На хранимом числе это не отразится, а вот сортировка будет корректной. А после сортировки можно еще раз пройти по массиву и удалить незначащие нули...

Apal
:p9:
APAL
Причем можно даже не менять массив, а просто во время сортировки учесть данную особенность.... и тогда можно избавиться от тройного прохода массива.

P.S.:
volvo,
tank.gif
Rio
Спасибо, получилось. Как мне самому не пришло в голову такое простое решение?...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.