第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何正確比較排序方法快速排序和歸并排序之間的運行時間?

如何正確比較排序方法快速排序和歸并排序之間的運行時間?

飲歌長嘯 2023-08-16 17:42:21
我有一個作業(yè)來比較使用合并排序和快速排序對大型整數(shù)數(shù)組進行排序的執(zhí)行時間。算法的實現(xiàn)是從書中復制的。它們都按升序對整數(shù)進行排序。然后我被要求說明快速排序的平均速度是多少。然而,根據(jù)我的測試樣本(盡管很?。野l(fā)現(xiàn)合并排序速度快了一小部分,這讓我相信我的測試不正確。我有 2 個程序,一個用于合并排序,一個用于快速排序。它們的 main() 代碼是相同的(如下所示)。我創(chuàng)建了一個隨機大小在 0 和某個選定上限之間的數(shù)組。然后我用隨機整數(shù)填充數(shù)組。然后我對數(shù)組進行排序并打印它。我使用 currentTimeMillis() 來檢查程序的運行時間。我對快速排序和合并排序進行了 10 次運行測試,將總時間相加并除以 10 以獲得排序的平均運行時間。我沒有發(fā)現(xiàn)快速排序平均比合并排序更快。我也嘗試過使用固定的數(shù)組大小,但結果仍然沒有暗示快速排序更快。什么是正確的測試方法?public static void main(String[] args){        /* create an array of some size 0 to 100000 with           random integers and measure the time it takes           to sort the array in ascending order (where sort() is either quicksort            or mergesort.)        */        long a = System.currentTimeMillis();        Random rnd = new Random(System.currentTimeMillis());        Integer[] array = new Integer[rnd.nextInt(100000)];        for(int i = 0; i < array.length; i++){            array[i] = rnd.nextInt();        }        sort(array);        System.out.println(Arrays.toString(array));        long b = System.currentTimeMillis() - a;        System.out.println("Program runtime: " + b + "ms");    }}Expected result: Quicksort average running time should be some % fasterin comparison to mergesort, for large random integer arrays.Actual result: Mergesort was slightly faster in most tests (10K elements, 100K elements, 1000K elements).
查看完整描述

1 回答

?
喵喵時光機

TA貢獻1846條經(jīng)驗 獲得超7個贊

您的測量包括隨機數(shù)組的生成,這是一項繁重的操作,并且會扭曲結果。


// do initialization here


long a = System.nanoTime();

sort(array);

long b = System.nanoTime();


// do the output here

...只會測量執(zhí)行期間經(jīng)過的時間sort(array)。哪個時間是您感興趣的時間。


替換System.currentTimeMillis()為System.nanoTime()使得結果更加準確。


查看完整回答
反對 回復 2023-08-16
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號