Форум программистов, компьютерный форум 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
13.12.2009, 01:10  [ТС]     Реализация алгоритма сортировки для любых типов данных
Цитата Сообщение от Evg Посмотреть сообщение
Перставлять - побайтный обмен местами от указателей p1 и p2 размером elem_size. Но функцию сравнения придётся писать для КАЖДОГО типа. Тут либо по одной функции для каждого типа, либо шаблон Си++ (что в конечном итоге так же родит по одной функции каждого типа)
не надо для каждого типа по функции делать..вот когда у нас целочисленные(инты) мы можем без проблем поменять элементы местами, вводим 3ю переменную, и сравниваем с ней, а когда мы не знаем тип, делаем так, вот есть 2 элемента, n1 и n2, каждый размером S байт, меняем побайтово, а я не могу это запихнуть в то место, ибо не знаю как написать, где у меня в алгоритме сортировки элементы меняются местами, думаю что вызову функцию из библиотеки, вот в библиотеку мне осталось записать функцию, которая должна сортировать любые типы данных, задание-то заключается в том, чтобы написать универсальную библиотеку. Помогите пожалуйста))

[img]http://i076.***********/0912/b9/43321bc3d6da.jpg[/img]

Добавлено через 18 минут
что-то вот как-то так: (j - сдвиг на сколько-то байт)

C++
1
2
3
4
5
6
7
8
typedef void(*cmp_f)(void*, void*)
{
    for (int j=0; j<s; j++);
    char c=*((char*)a1+j);
    *((char*)a1+j)=*((char*)a2+j);
    *((char*)a2+j=c;
    
}
 
Текущее время: 18:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru