Сортировка "Линейная выборка подсчётом", "комплексный" тип
От: aks007 Россия  
Дата: 27.05.10 09:41
Оценка:
Кто-нибудь, пожалуйста, выскажите Ваши идеи по поводу реальности такого сочетания. Заранее спасибо.
Re: Сортировка "Линейная выборка подсчётом", "комплексный" т
От: Acteon  
Дата: 27.05.10 09:49
Оценка:
Здравствуйте, aks007, Вы писали:

A>Кто-нибудь, пожалуйста, выскажите Ваши идеи по поводу реальности такого сочетания. Заранее спасибо.


Эмм... std::hash_multiset от MS.
Re[2]: Сортировка "Линейная выборка подсчётом", "комплексный
От: aks007 Россия  
Дата: 27.05.10 09:54
Оценка:
Здравствуйте, Acteon, Вы писали:

A>Здравствуйте, aks007, Вы писали:


A>>Кто-нибудь, пожалуйста, выскажите Ваши идеи по поводу реальности такого сочетания. Заранее спасибо.


A>Эмм... std::hash_multiset от MS.


Есть ли ещё способы? Просто: 1) Это курсовой проект первого курса , реализация по возможности самостоятельная; 2) На данный момент есть отображение complex <-> double <-> unsigned long long. Считаю что трабл в том, что такой целочисленный тип для индексации ну никак не подходит...
Re[3]: Сортировка "Линейная выборка подсчётом", "комплексный
От: Acteon  
Дата: 27.05.10 09:59
Оценка:
Здравствуйте, aks007, Вы писали:

A>Здравствуйте, Acteon, Вы писали:


A>>Здравствуйте, aks007, Вы писали:


A>>>Кто-нибудь, пожалуйста, выскажите Ваши идеи по поводу реальности такого сочетания. Заранее спасибо.


A>>Эмм... std::hash_multiset от MS.


A>Есть ли ещё способы? Просто: 1) Это курсовой проект первого курса , реализация по возможности самостоятельная; 2) На данный момент есть отображение complex <-> double <-> unsigned long long. Считаю что трабл в том, что такой целочисленный тип для индексации ну никак не подходит...


Так а в чем проблема? Разбираешься как работает то что уже есть (set, multiset, hash_set, hash_multiset). И делаешь так же, но по своему. Для первого курса хватит.
Re[3]: Сортировка "Линейная выборка подсчётом", "комплексный
От: D14  
Дата: 27.05.10 12:51
Оценка:
A>Есть ли ещё способы? Просто: 1) Это курсовой проект первого курса , реализация по возможности самостоятельная; 2) На данный момент есть отображение complex <-> double <-> unsigned long long. Считаю что трабл в том, что такой целочисленный тип для индексации ну никак не подходит...
Приехали. Кто ж комплексные числа сортирует на первом курсе, над котороми даже отношение порядка нельзя ввести, удовлетворяющее естественному свойству близости?
Re: Сортировка "Линейная выборка подсчётом", "комплексный" т
От: Кодт Россия  
Дата: 27.05.10 12:55
Оценка:
Здравствуйте, aks007, Вы писали:

A>Кто-нибудь, пожалуйста, выскажите Ваши идеи по поводу реальности такого сочетания. Заранее спасибо.


Сортировка подразумевает, что над типом определён порядок. (Например, отношение "<").
Для комплексных чисел такого естественного порядка нет — в отличие от одномерных (целых, вещественных).
Какой искусственный порядок будешь вводить?
Например, лексикографический
— по Re, затем по Im;
— или по Abs, затем по Arg;
— или наоборот, по Arg, затем по Abs;
— или по байтам (memcmp)

Сортировка является частным случаем группировки.
Если мы отсортируем последовательность с одним произвольным порядком, а затем посмотрим на результат с точки зрения другого порядка, — последовательность будет неупорядочена (что неудивительно), но сгруппирована: одинаковые¹ элементы будут идти подряд.
¹) тут есть тонкие различия между идентичностью и эквивалентностями, — могу развернуть тему позже

Для выбора подсчётом порядок, как таковой, не нужен.
Достаточно хэш-таблицы (которая основана на отношении эквивалентности, а не порядка).
Тем самым мы запросто решим задачу группировки.
Перекуём баги на фичи!
Re[3]: Сортировка "Линейная выборка подсчётом", "комплексный
От: Кодт Россия  
Дата: 27.05.10 13:10
Оценка:
Здравствуйте, aks007, Вы писали:

A>1) Это курсовой проект первого курса , реализация по возможности самостоятельная;


Какие инструменты считаются доступными (разрешёнными), а какие нужно изобретать самостоятельно?
Ибо, задача-то решается в десяток строчек, с использованием STL-ных контейнеров (vector и map), алгоритмов (for_each, fill_n) и адаптеров (back_inserter).

A>2) На данный момент есть отображение complex <-> double <-> unsigned long long. Считаю что трабл в том, что такой целочисленный тип для индексации ну никак не подходит...


А никто не заставляет использовать сплошной массив счётчиков.
Подойдёт любой разреженный — например, std::map.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.