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

Сортировка вставкой по ключу в одномерном массиве - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 5.00
RAMON@
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 67
05.04.2010, 14:55     Сортировка вставкой по ключу в одномерном массиве #1
8. Ключ: дата начала работы. Сортировка вставкой.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
15.04.2010, 16:57     Сортировка вставкой по ключу в одномерном массиве #2
понятно
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
15.04.2010, 17:10     Сортировка вставкой по ключу в одномерном массиве #3
RAMON@, напишите полностью задание
RAMON@
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 67
15.04.2010, 17:14  [ТС]     Сортировка вставкой по ключу в одномерном массиве #4
В программе, составленной при выполнении лабораторной работы №9, вы-полнить сортировку заданным методом по неубыванию массива структур по указанному в индивидуальном задании ключу.

8. Ключ: дата начала работы. Сортировка вставкой.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
15.04.2010, 17:28     Сортировка вставкой по ключу в одномерном массиве #5
RAMON@, понимаете, мне не сложно обернуть в структуру/класс три значения типа short, но вам оно надо? Что за структура, какие у нее поля кроме даты начала работы?

Прочитайте http://www.cyberforum.ru/cpp-beginners/thread17474.html
RAMON@
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 67
15.04.2010, 18:52  [ТС]     Сортировка вставкой по ключу в одномерном массиве #6
сдесь нужно отсортировать методом вставки!!!! вот а отсортировать нужно ключ..а именнодата, начало работы!!

C++
1
2
3
4
5
6
7
8
9
10
11
void S_Vst (int a[], int n)
{
int i, j, t;
for(i=1; i<n; i++) // Перебор элементов
{
t = a[i]; // Выбор элемента
for(j = i-1; j >= 0 && t < a[j]; j--) // Поиск необходимой позиции
a[j+1] = a[j]; // для втавки элемента
a[j+1] = t; // Вставка элемента
}
}
вот пример!!
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
15.04.2010, 19:16     Сортировка вставкой по ключу в одномерном массиве #7
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
#include <iostream>
struct Employee
{
    int year;
};
void S_Vst (Employee a[], int n)
{
    int i, j;
    Employee t;
    for(i=1; i<n; i++) // Перебор элементов
    {
        t = a[i]; // Выбор элемента
        for(j = i-1; j >= 0 && t.year < a[j].year; j--) // Поиск необходимой позиции
            a[j+1] = a[j]; // для втавки элемента
        a[j+1] = t; // Вставка элемента
    }
}
int main()
{
    setlocale(LC_ALL, "Russian");
    const int n = 2;
    Employee emp[n];
    int i;
    std::cout<<"Введите год приема на работу: \n";
    for(i = 0; i < n; ++i)
        std::cin>>emp[i].year;
    S_Vst(emp, n);
    std::cout<<"Отсортировано: \n";
    for(i = 0; i < n; ++i)
        std::cout<<emp[i].year<<std::endl;
    system("pause");
    return 0;
}

ЗЫ. Я так понял вам ваше задание надо не больше чем мне
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
14.05.2010, 14:10     Сортировка вставкой по ключу в одномерном массиве #8
А сама структура то хоть какая?
RAMON@
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 67
14.05.2010, 14:13  [ТС]     Сортировка вставкой по ключу в одномерном массиве #9
массив структур.. что еще какие то есть?
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
14.05.2010, 14:17     Сортировка вставкой по ключу в одномерном массиве #10
чтобы сделать массив структур, необходимо сначала сделать саму структуру
RAMON@
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 67
14.05.2010, 14:22  [ТС]     Сортировка вставкой по ключу в одномерном массиве #11
хм.. незнаю.. задание такое.. СОРТИРОВКА ПО КЛЮЧУ ОДНОМЕРНЫХ МАССИВОВ СТРУКТУР.
вы-полнить сортировку заданным методом по неубыванию массива структур по указанному в индивидуальном задании ключу.Ключ: дата начала работы. Сортировка вставкой.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2010, 15:08     Сортировка вставкой по ключу в одномерном массиве
Еще ссылки по теме:

C++ Что делает сортировка простым обменом в одномерном массиве?
C++ Сортировка вставкой
C++ Сортировка только нечетных элементов в одномерном массиве (четные оставляем на своих местах)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
14.05.2010, 15:08     Сортировка вставкой по ключу в одномерном массиве #12
Сложно конечно вот так догадываться, но думаю это то что нужно
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
91
92
93
#include <cstdio>
#include <cstdlib>
 
struct Date
{
   int day;
   int month;
   int year;
};
 
bool DatePred(Date * a, Date * b)
{
   if(a->year > b->year)
      return true;
   else if(a->month > b->month)
      return true;
   else if(a->day > b->day)
      return true;
 
   return false;
}
 
struct Worker
{
   char name[32];
   Date date;
};
 
void structAdd(struct Worker * w)
{
   printf("Enter the Name: ");
   scanf("%s", &(w->name));
 
   printf("Enter the date of work begin: \n");
   printf("-\tEnter the day: ");
   scanf("%d", &(w->date.day));
   printf("-\tEnter the month: ");
   scanf("%d", &(w->date.month));
   printf("-\tEnter the year: ");
   scanf("%d", &(w->date.year));
}
 
void structPrint(struct Worker * w)
{
   printf("%s : %d %d %d\n", w->name, w->date.day, w->date.month, w->date.year);
}
 
void structSort(struct Worker * w, int l, int r)
{
    int i = 0;
    for(i = r; i > l; i--)
      if(DatePred(&(w[i-1].date), &(w[i].date)))
      {
         Worker t = w[i-1];
         w[i-1] = w[i];
         w[i] = t;
      }
    for(i = l+2; i <= r; i++)
    {
        int j = i;
        Worker v = w[i];
        while(!DatePred(&(v.date), &(w[j-1].date)))
        {
            w[j] = w[j-1];
            j--;
        }
        w[j] = v;
    }
}
 
#define SIZE 3
 
int main()
{
   Worker w[SIZE];
 
   for(int i = 0; i < SIZE; ++i)
   {
      structAdd(&w[i]);
      printf("\n");
   }
 
   for(int i = 0; i < SIZE; ++i)
      structPrint(&w[i]);
   printf("\n");
 
   structSort(w, 0, SIZE - 1);
   for(int i = 0; i < SIZE; ++i)
      structPrint(&w[i]);
   printf("\n");
 
   system("pause");
}
Yandex
Объявления
14.05.2010, 15:08     Сортировка вставкой по ключу в одномерном массиве
Ответ Создать тему
Опции темы

Текущее время: 12:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru