С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Реализация алгоритма сортировки для любых типов данных - 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) Определить структуры, описывающие шар и точку в трёхмерном пространстве. Составить и протестировать функцию, которая проверяет, находится...
C++ Алгоритм бинарных вставок http://www.cyberforum.ru/cpp-beginners/thread72058.html
подскажите пожалуйста как изменить алгоритм простых вставок.чтобы преобразовать его в алгоритм бинарных вставок..
C++ Вычислить произведение элементов массива S, значение которых не больше заданного негативного числа Здесь задали на Борланде С++ ну просто нечто (я нуб в этом деле) 1.Вычислить произведение элементов массива S ,значение которых не больше заданного негативного числа A, а индексы... подробнее

Показать сообщение отдельно
Shim
25 / 25 / 1
Регистрация: 21.11.2009
Сообщений: 159
23.12.2009, 19:28  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Надо завязывать с добрыми делами

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <stdio.h>
 
/* --------- Это библиотека ---------- */
 
void
swap_mem (void *p1, void *p2, int elem_size)
{
  char *pp1 = (char*) p1;
  char *pp2 = (char*) p2;
  char tmp;
  int i;
 
  for (i = 0; i < elem_size; i++)
    {
      tmp = pp1[i];
      pp1[i] = pp2[i];
      pp2[i] = tmp;
    }
}
 
void
sort (void *arr, int num_elems, int elem_size, int (*cmp_func) (void*, void*))
{
  int i, j;
  void *pi, *pj;
 
  for (i = 0; i < (num_elems - 1); i++)
    for (j = i + 1; j < num_elems; j++)
      {
        /* Указатели на элементы массива arr[i] и arr[j] */
        pi = (char*)arr + i * elem_size;
        pj = (char*)arr + j * elem_size;
 
        /* Если элемент arr[i] > arr[j], то меняем их местами */
        if (cmp_func (pi, pj) > 0)
          swap_mem (pi, pj, elem_size);
      }
}
 
/* --------- Это пользовательские коды ---------- */
 
int
cmp_int (void *p1, void *p2)
{
  int *pp1 = (int*) p1;
  int *pp2 = (int*) p2;
 
  if (*pp1 < *pp2)
    return -1;
  else if (*pp1 == *pp2)
    return 0;
  else
    return 1;
}
 
int
cmp_double (void *p1, void *p2)
{
  double *pp1 = (double*) p1;
  double *pp2 = (double*) p2;
 
  if (*pp1 < *pp2)
    return -1;
  else if (*pp1 == *pp2)
    return 0;
  else
    return 1;
}
 
int
main (void)
{
#define MAX_a 10
  int a[MAX_a] = { 1, 7, 8, 34, 2, 5, 0, 6, 9, 3 };
#define MAX_b 12
  double b[MAX_b] = { 1.0, 7.0, 8.0, 34.0, 2.0, 5.0, 0.0, 6.0, 9.0, 3.0, 12.0, 17.0 };
  int i;
 
  sort (a, MAX_a, sizeof (a[0]), cmp_int);
  for (i = 0; i < MAX_a; i++)
    printf ("%d ", a[i]);
  printf ("\n");
 
  sort (b, MAX_b, sizeof (b[0]), cmp_double);
  for (i = 0; i < MAX_b; i++)
    printf ("%f ", b[i]);
  printf ("\n");
 
  return 0;
}
большое спасибо

p.s.: если у меня появится желание учиться программированию (ааа, сейчас, размечтался ) то на каких примерах/заданиях лучше начать тренироваться ?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.