簡體   English   中英

如何使用 chrono 查看我的排序算法每次迭代需要多長時間?

[英]How to use chrono to see how long my sorting algorithm takes each iteration?

我必須運行我的程序一定次數,並希望確定每次迭代完成所需的時間。 我將其更改為較小的值以查看結果,但它顯示了我

0.002056
0.001183
0.000613
0.000922
0.000731

我有點不確定這是否是結果應該如何查找冒泡排序,因為它開始大於結果的結尾。 這些結果看起來准確還是我在一個奇怪的位置調用我的計時器?

if (sorting_type == 1) {
        for (int i = 0; i < 5; i++) {
            auto timer1 = chrono::high_resolution_clock::now();
            A->BubbleSort();
            auto timer2 = chrono::high_resolution_clock::now();
            chrono::duration<double, milli> duration_ms = timer2 - timer1;
            cout << duration_ms.count() << endl;
            
        }  
    }

您正在重復對同一組數據進行排序。 這導致冒泡排序在第一次迭代后花費的時間更少。 如果您的數據以前是這樣的:

[6,2,8,1]

這些步驟必須在第一次迭代中發生:

 <->
[2,6,8,1]
   <->
[2,6,8,1]
     <->
[2,6,1,8]
 <->
[2,6,1,8]
   <->
[2,1,6,8]
     <->
[2,1,6,8]
 <->
[1,2,6,8]
   <->
[1,2,6,8]
     <->
[1,2,6,8]
 <->
[1,2,6,8]
   <->
[1,2,6,8]
     <->
[1,2,6,8]

其他迭代都將如下所示:

 <->
[1,2,6,8]
   <->
[1,2,6,8]
     <->
[1,2,6,8]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM