Форум программистов, компьютерный форум CyberForum.ru

Реализация алгоритма сортировки для любых типов данных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ строки:ПЕРЕВОД ИЗ ОДНОЙ C/ С В ДР http://www.cyberforum.ru/cpp-beginners/thread72072.html
Вывести все числа не превышающие данное N, которые в 2-ной системе счислания имеют симметричную запись ( начинается с 1!). Помогите юному гению в юбке сдать задачу на зачет! Пасибки за понимание
C++ Сортировка пузырьком... Доброе утро/день/вечер!=) У меня есть пару вопросов, на которые я никак не могу найти ответов... Есть программа, в которй проставляется оценка каждого студента за определённый предмет, всё ничего кроме одного, не работает сортировка(по студентам и оценкам) пузырьком... Никаких изменений эта сортировка не принесла...Почитал ваш форум, и натыкался впринцепе на тоже самое, что я в своём коде... http://www.cyberforum.ru/cpp-beginners/thread72069.html
C++ Замена в одномерном массиве, работа со строками из нулей и единиц
HELP!!!я ноль в с++ не могу сделать данные задачи: "Даны одномерные массивы чисел Х,размерностью n и Y,размерностью m. необходимо написать программу с использованием функций в которой будут заменятся нулями все положительные элементы в массивах." "дана строка состоящая из групп нулей и едениц. каждая группа отделяется друг от друга одним или несколькими пробелами. нужно создать программу...
C++ Структуру
Помогите решить задачи...пробовал ничего не смог понять. 1) Определить структуры, описывающие шар и точку в трёхмерном пространстве. Составить и протестировать функцию, которая проверяет, находится ли точка внутри заданного шара. и вторая, уже была но я не смог понять, объяснить 2) Описать процедуру IncTime(H, M, S, T), которая увеличивает на Т секунд время, заданное в часах Н, минутах М...
C++ Алгоритм бинарных вставок http://www.cyberforum.ru/cpp-beginners/thread72058.html
подскажите пожалуйста как изменить алгоритм простых вставок.чтобы преобразовать его в алгоритм бинарных вставок..
C++ Вычислить произведение элементов массива S, значение которых не больше заданного негативного числа Здесь задали на Борланде С++ ну просто нечто (я нуб в этом деле) 1.Вычислить произведение элементов массива S ,значение которых не больше заданного негативного числа A, а индексы нечетные(Кол.элементов:N=16;Элементы:от -9 до 4;A=-4;) 2.Найти количество одинаковых элементов которые находятся в массиве A(N). ( Кол.элементов:N=21;Элементы:от -4 до 4;) 3.Найти и напечатать, сколько не... подробнее

Показать сообщение отдельно
Shim
 Аватар для Shim
25 / 25 / 1
Регистрация: 21.11.2009
Сообщений: 159
11.12.2009, 15:20  [ТС]     Реализация алгоритма сортировки для любых типов данных
Цитата Сообщение от Evg Посмотреть сообщение
Перставлять - побайтный обмен местами от указателей p1 и p2 размером elem_size. Но функцию сравнения придётся писать для КАЖДОГО типа. Тут либо по одной функции для каждого типа, либо шаблон Си++ (что в конечном итоге так же родит по одной функции каждого типа)
не, через шаблон не годится, ибо препод сказал что на лекц. нам про шаблоны не читал.

Добавлено через 16 минут
Вот пример: поиск max в массиве (используем тип указателя viod* который может указывать на что угодно). Мне нужно по-аналогии сделать..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
typedef int(*fxcomp)(void*, void*)
int max (void*, int n, int sz, fxcomp)
{
int max=0
for(int i=1; i<n; i++)
{
void*pi=(char*)v + i*sz;
void*pmax=(char*)v + max*sz;
if (f(pmax, pi)<0)
max=i;
}
return max;
}
 
int comp_double(void*d1, void*d2)
{
return*(double*)d1 - *(double*)d2;
}
#define N 100
void main()
{
double d[N];
...
int m=max(d,N,sizeof(double),comp_double);
double max = v[max];
}
int comp_rect(void*r1, void*r2)
{
double s1 = rects(*(rect*)r1);
double s2 = rects(*(rect*)r2);
return s1-s2;
}
void main()
{
rect rc[N]
int m = max(rc, N, sizeof(rect)), comp_rect);
}
...
 
Текущее время: 08:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru