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

Алгоритм Джонсона - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.70
0xDC
2 / 2 / 0
Регистрация: 15.09.2011
Сообщений: 104
09.06.2012, 11:19     Алгоритм Джонсона #1
Всем привет. Кто-нибудь знает где в сети найти реализацию алгоритма Джонсона? Задача состоит в том, что даны детали и время обработки, нужно написать прогу при которой станки будут простаивать наименьшее время
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2012, 11:19     Алгоритм Джонсона
Посмотрите здесь:

C++ c++/алгоритм
алгоритм C++
C++ Алгоритм
Алгоритм C++
C++ QR алгоритм
C++ Алгоритм
C++ алгоритм бм
C++ Алгоритм Джонсона

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
qfisher
30 / 30 / 1
Регистрация: 24.05.2012
Сообщений: 156
09.06.2012, 11:29     Алгоритм Джонсона #2
http://e-maxx.ru/algo/johnson_problem_2
0xDC
2 / 2 / 0
Регистрация: 15.09.2011
Сообщений: 104
09.06.2012, 21:02  [ТС]     Алгоритм Джонсона #3
Здравствуйте! Вобщем как видно из тему пишу алгоритм Джонсона. не знаю чачем заморочился с классами и векторами. Появились ошибки. Вобщем подскажите 1) Как мне удалить после нахождения минимального элемента этот элемент из первоначального вектора,чтобы этот элемент уже не трогать.
Ну и вообще чтобы это все заработало)
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
class Element{
public:
int op_a; //время операции а
int op_b; //время операции b
int num;  //номер детали
Element(int a,int b,int number):op_a(a),op_b(b),num(number){} //конструктор с 3мя аргументами
 
Element(): //конструктор без аргументов
          op_a(0), op_b(0),
              num(0){}
 
void get() {//ввод данных пользователем
    cout<<"\n Please enter information about Elemen (op_a,op_b,number)\n";
    cin>>op_a>>op_b>>num;
    
}
    int get_time1() const{return op_a;}
    int get_num() const{return num;}
    int get_time2() const{return op_b;}
     void display(){ //Вывод на экран
    cout<<op_a<<"\n"<<op_b<<"\n"<<num<<"\n"<<"\n";
          }
};
int main()
{
Element A;
char answer;
vector <Element> Evector;
vector <Element>::iterator iter1;
vector <Element> Avector;
vector <Element> Bvector;
vector <Element>::iterator iter2;
int min,max;
int num_element=0;
 
int j=1;
 int n=0;
 vector <int> Numbers;
   vector <int> Numbers2;
 
 
//*********Ввод с клавиатуры*********//
        
   do {
      A.get();
      Evector.push_back(A);
     
      ++n;
      cout<<"Continue (y/n)?";
      cin>>answer;
      
  } 
    while (answer != 'n') ;
    
//____________________________________//
 
   iter1=Evector.begin();
  while(iter1 != Evector.end())
      (*iter1++).display();
 
 
      do{
          //нашли мин
for(iter1=Evector.begin();iter1!=Evector.end();++iter1)
          {
          min=(*(iter1)).get_time1();
              if (min>(*(++iter1)).get_time1())
              {
                 min=((*(iter1)).get_time1());
                 num_element=(*(iter1)).get_num();
              }
              
         
          }
 
Numbers.push_back(num_element); //записали номера деталей
 
//Формирование нового списка,удаление из старого мин-ых эелемнтов
  for(iter1=Evector.begin();iter1!=Evector.end();++iter1)
 {
if (num_element == (*iter1).get_num())
    {iter2=iter1;
         Avector.push_back(*iter1);
        
        
        
     }
}
 
  for(iter1=Evector.begin();iter1!=Evector.end();++iter1)
          {
          min=(*(iter1)).get_time2();
              if (max<(*(++iter1)).get_time2())
              {
                 max=((*(iter1)).get_time2());
                num_element=(*(iter1)).get_num();
              }
  }
              Numbers2.push_back(num_element); //записали номера деталей
 
              //Формирование нового списка,удаление из старого макс-ых эелемнтов
  for(iter1=Evector.begin();iter1!=Evector.end();++iter1)
 {
if (num_element == (*iter1).get_num())
    {
         Bvector.push_back(*iter1);
        
        (*iter1).op_b=0;
        
     }
}
  (*iter2).op_a=100;
 j++; 
     }  while (j<(n+1)) ;
 
  
  
  cout<<num_element<<"\n";
   iter1=Avector.begin();
  while(iter1 != Avector.end())
      (*iter1++).display();
 
//   iter1=Evector.begin();
 // while(iter1 != Evector.end())
//    (*iter1++).display();
 
 
 
 
return 0;
}
Yandex
Объявления
09.06.2012, 21:02     Алгоритм Джонсона
Ответ Создать тему
Опции темы

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