Тема
|
Намиране на най-малката разлика
|
|
Автор | Глyпи (Нерегистриран) |
Публикувано | 15.12.03 12:59 |
|
Здравейте пичове имам един проблем начи имам един масив с дати
и искам да намеря двоиката с най малка разлика (най-близките дати) - ламер съм и имам понятие само от синтаксиса на С++ та много ви моля ако можете да ми покажете някои начин да намеря двете най-близки дати - да не е много ефективен но пък да е лесен за разбиране и съставяне (Не искам някой да ми го направи искам да се науча!) 
|
|
Тема
|
Re: Намиране на най-малката разлика
[re: Глyпи]
|
|
Автор |
sdg (shebang addict) |
Публикувано | 15.12.03 14:05 |
|
Konvertiraj datite do "seconds till epoch", ili, prosto kazano, do broj sekundi ot 01/01/1970 00:00, i posle nameri dvete chisla s naj-malka razlika.
man strptime(3), strftime(3), ctime(3); ili, estestveno, google za biblioteka s C++ interface, kojato shte svyrshi rabotata vmesto teb ;-)
RTFM!
--sdg
|
|
Тема
|
Re: Намиране на най-малката разлика
[re: Глyпи]
|
|
Автор | dl (Нерегистриран) |
Публикувано | 15.12.03 16:19 |
|
#include "boost/date_time/gregorian/gregorian.hpp"
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std ;
using namespace boost::gregorian;
void main()
{
vector<date> dt ;
string str ;
while (cin >> str)
{
dt.push_back(from_string(str)) ;
}
sort(dt.begin(), dt.end()) ;
date_duration dd, min_d(MAX_LONG);
date d1, d2 ;
for (vector<date>::iterator i = dt.begin() + 1; i != dt.end() ; i ++)
{
dd = *i - *(i-1) ;
if (dd < min_d)
{
d1 = *i ; d2 = *(i - 1) ;
}
}
cout << d1 << " " << d2 << endl ;
}

|
|
Тема
|
Re: Намиране на най-малката разлика
[re: dl]
|
|
Автор |
Skotowydec (disable:4786) |
Публикувано | 15.12.03 17:30 |
|
Малееее, ти изби рибата. Човека като иде с домашно дето започва с
#include <boost/...
нали направо ще го назначат за асистент!
|
|
Тема
|
а по-добри идеи имаш ли?
[re: Skotowydec]
|
|
Автор | darklord (Нерегистриран) |
Публикувано | 15.12.03 17:47 |
|
По-кратко и ясно решение от това дали може да се напише?
Че даскалите ще се шашнат е от ясно по-ясно.... Особено ако са от тия дето дават задания за проекти, в които се казва "... и да не се използват готови библиотеки...."
|
|
Тема
|
Re: Намиране на най-малката разлика
[re: dl]
|
|
Автор | Глyпи (Нерегистриран) |
Публикувано | 15.12.03 17:49 |
|
Пич мерси много ама не може ли нещо без STL 
|
|
Тема
|
Re: Намиране на най-малката разлика
[re: Глyпи]
|
|
Автор |
Плaмeн (ентусиаст) |
Публикувано | 15.12.03 18:50 |
|
prosto gi sortirai i sled tpva proveri vseki 2 sasedni elementa
|
|
Тема
|
Re: Намиране на най-малката разлика
[re: dl]
|
|
Автор | silverBullet (Нерегистриран) |
Публикувано | 15.12.03 21:45 |
|
Дарки ,
един въпрос : Аз вярно че от две години не съм пипал C++ и доста съм го забравил ама все пак нещо не виждам къде се актуализира min_d в тоя алгоритъм ;-).
|
|
Тема
|
Re: Намиране на най-малката разлика
[re: Глyпи]
|
|
Автор | wc (Нерегистриран) |
Публикувано | 16.12.03 09:38 |
|
skij sea batka, ima pone 2 nachina - gruba sila i po-lekata...
1. sravnqvash seki sys seki (dva vlojeni for-a) kato si pomish koi dva razlichni sa naj-blizo.
2. sortirash i s edno for-che sravnqvash koi dva sysedni sa naj-blizo (tozi nachin ti e napravil lorda s stl, ne e problem da si zemesh datite kato longove i togava stl ne ti trebe)
bih ti preporychal grubiq variant 1 - kratko i qsno, a i nqmash izlishno sortirane
|
|
Тема
|
Re: Намиране на най-малката разлика
[re: wc]
|
|
Автор | Глyпи (Нерегистриран) |
Публикувано | 16.12.03 09:50 |
|
Благодаря много на всички.
|
|