χρόνος εκτέλεσης αλγορίθμου

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
airmang
Δημοσιεύσεις: 4
Εγγραφή: 26 Νοέμ 2008 13:02

χρόνος εκτέλεσης αλγορίθμου

Δημοσίευση από airmang » 20 Απρ 2009 12:38

Χριστός Ανέστη και Χρόνια Πολλά!

Μια ερώτηση:
αν θέλω ένας αλγόριθμος να τρέχει για ένα συγκεκριμένο χρονικό διάστημα π.χ. 3 λεπτά,
- αν μέσα σε αυτά τα 3 λεπτά βρεθεί λύση, τερμάτισε
- αλλιώς συνέχισε μέχρι να εξαντληθούν τα 3 λεπτά

Πώς θα το κάνω;

είναι σωστό αν γράψω αρχικά:
int t, endTime=clock()+10800; //3*3600=10800 δευτερόλεπτα

και μετά παρακάτω:
while (t<=endTime){
// αλγόριθμος
}

ευχαριστώ!

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

χρόνος εκτέλεσης αλγορίθμου

Δημοσίευση από virxen75 » 20 Απρ 2009 16:29

Χρόνια πολλά
Αληθώς Ανέστη.

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <time.h>


void main&#40;&#41;&#123;
     double time1=0;
     double finishTime;
     clock_t start = clock&#40;&#41;;
     finishTime=start+10;//10 seconds
     while &#40;time1<=finishTime&#41;&#123;/* o κώδικας πιο κάτω τρέχει για 10 δευτερόλεπτα */
	time1=&#40;&#40;double&#41;clock&#40;&#41; - start&#41;/ CLOCKS_PER_SEC;
	printf&#40;"Time elapsed&#58; %f\n", time1&#41;;
     &#125;

&#125;
εαν τώρα θες να βγεις από το while όταν βρεις λύση έστω και πιο μπροστά από τα 10 sec
τότε πρέπει να βάλεις ένα

if(συνθήκη==true) time1=finishTime+1;

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες