Java和C的排序大戰

本博客的代碼的思想和圖片參考:好大學慕課浙江大學陳越老師、何欽銘老師的《數據結構》html

感謝PTA提供測試平臺算法

 

排序題目和測試點:數據結構

 

給定NNN個(長整型範圍內的)整數,要求輸出從小到大排序後的結果。測試

 

本題旨在測試各類不一樣的排序算法在各類數據狀況下的表現。各組測試數據特色以下:spa

 

  • 數據1:只有1個元素;
  • 數據2:11個不相同的整數,測試基本正確性;
  • 數據3:103個隨機整數;
  • 數據4:104個隨機整數;
  • 數據5:105個隨機整數;
  • 數據6:105個順序整數;
  • 數據7:105個逆序整數;
  • 數據8:105個基本有序的整數;
  • 數據9:105個隨機正整數,每一個數字不超過1000。

    輸入格式:

    輸入第一行給出正整數NNN(≤105\le 10^5105​​),隨後一行給出NNN個(長整型範圍內的)整數,其間以空格分隔。code

    輸出格式:

    在一行中輸出從小到大排序後的結果,數字間以1個空格分隔,行末不得有多餘空格。htm

    輸入樣例:

    11
    4 981 10 -17 0 -20 29 50 8 43 -5

測試點的連接:blog

https://pta.patest.cn/pta/test/3512/exam/4/question/88696排序

下面是Java和C的測試結果圖片

1首先來比較一下Java的歸併排序和C的歸併排序的測試結果

1.1 Java的歸併排序結果

 

C的歸併排序結果

 

從結果來看,不管是時間複雜度仍是空間複雜度,C都完勝Java,好傷心。

2再來比較一下Java的堆排序和C的堆排序的測試結果

2.1Java堆排序結果

 

2.1 C的堆排序結果

結果又是Java被完虐。哎

 

3 最終招數---使用Java自帶的Arrays.sort

仍是比不上C,哎無法了。我不得不相信Java比C慢了

相關文章
相關標籤/搜索