Sau đây em xin giới thiệu với các bạn chưa biết một cách khá đơn giản để xác định xem chương trình chạy trong thời gian bao lâu (chỉ dùng với Turbo Pascal):
Phần khai báo biến thì thêm vào:
timer:longint absolute $0:$46c;
timeold:longint;
Trong chương trình chính:
begin
timeold:=timer;
{Thực hiện các lệnh của chương trình}
Writeln('Chương trình chạy trong ',(timer-timeold)/18.2,' giay');
Readln;
end.
Nhân tiện em xin hỏi luôn trong Free Pascal thì làm như thế nào?
Được sửa bởi mr_invincible lúc 20:06 ngày 18-01-2008
Chương trình đo thời gian này có bị cấu hình máy chi phối không? Theo mình nghĩ, nếu muốn đo thời gian thì tốt nhất là tìm độ phức tạp của bài toán!
- Gửi mr_invisible:
Thía này nè:
Thời gian tính = milisecond(s)Code:uses windows var a: longint; begin a:= getTickCount; // các lệnh trong ct writeln(getTickCount - a); end.
- Gửi blackcartus:
Độ phức tạp của thuật toán thường chỉ được tính một cách tương đối thôi. Chẳng hạn như thuật toán tìm cặp ghép trọng số O(n^3) nhưng thực ra tính nhanh hơn rất nhiều.
Không tính độ phức tạp để mà ngồi gõ từng giải thuật rồi tính thời gian của nó à ! Tốn thời gian gấp đôi .Code:- Gửi blackcartus: Độ phức tạp của thuật toán thường chỉ được tính một cách tương đối thôi. Chẳng hạn như thuật toán tìm cặp ghép trọng số O(n^3) nhưng thực ra tính nhanh hơn rất nhiều.
Độ phức tạp của các thuật toán được tính toán bằng toán học theo các phương pháp nhất định chứ không phải viết ra rồi tính thời gian đâu bạn ạ. Hơn nữa trong nhiều trường hợp người ta cũng chỉ tính độ phức tạp trung bình thôi. VD: độ phức tạp trung bình của Quick Sort là n log n nhưng trong trường hợp xấu nhất độ phức tạp vẫn lớn hơn
mấy anh ơi, post bài toán người du lịch lên cho em tham khảo với. (em nhỏ lớp 10)
Post bài toán người du lịch tức là post thuật toán hay bài giải hay cái gì? Mà lớp 10 thì nhỏ gì?
Bài toán người du lịch ???
Đây là bài toán tìm đường đi hay là bài toán xếp hành lí của người đi du lịch ??? Nói chung chung vậy khác j mò kim đáy bể
Bookmarks