Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Перемещение чисел массива в файле

Пример на C++:

inline bool sorter(int x, int y)
{
return x%2 < y%2; // operator% означает остаток от деления
}
/* skipнуто */
std::stable_sort(array.begin(), array.end(), sorter);

Вообще, для C++ в стандартной библиотеке (STL) есть столько всего, что я с
Delphi практически завязал. Что, впрочем, не удивительно: Delphi не является
языком, для которого издают международные станданты (ISO), к сожалению. Для
Delphi могу предложить только "ручное" решение. Например, метод "пузырька",
где в качестве критерия сравнения выступает выражение
x MOD 2 < y MOD 2
Метод пузырька является "стабильным", то есть сохраняет относительный
порядок сортируемых элементов. Надеюсь, прочитать файл в массив и сбросить
результаты в файл, не проблема? Иначе можно воспользоваться методом
"вставки" - заводишь два списка и, последовательно читая файл, помещаешь
очередное прочитанное число в зависимости от его чётности в один из двух
списков. А затем оба списка последовательно выводятся в файл. Пример
опять-таки на C++:

std::list<int> odd, even;

inline void adder(int x)
{
(x%2==0 ? even : odd).push_back(x);
}
/* skipнуто */
std::for_each(std::istream_iterator<int>(std::cin),
std::istream_iterator<int>(), adder);
std::copy(even.begin(), even.end(), std::ostream_iterator<int>(std::cout, "
"));
std::copy(odd.begin(), odd.end(), std::ostream_iterator<int>(std::cout, "
"));

Примеры вполне работоспособны. Разве что заменить std::cin и std::cout на
что-нибудь другое.

--
С уважением, boroda
mailto:boroden***@s*****.ru

Номер выпуска : 4120
Возраст листа : 531 (дней)
Количество подписчиков : 522
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/327980
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Шматко А.А. Sat, 5 Mar 2005 12:35:25 +0300 (#327980)