999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

排序算法時間復雜度比較試驗設計

2019-09-07 07:13:30任洛漪電子科技大學成都學院計算機系
數碼世界 2019年9期
關鍵詞:排序

任洛漪 電子科技大學成都學院 計算機系

1 引言

各種排序算法時間復雜度比較部分是《數據結構》課程的重難點。如果光講理論,學生理解比較膚淺,因此我們嘗試在教學中用實驗的方法讓學生切身感受到各種排序算法的區別。

2 時間測量方法的準備

首先需要找到精確的時間測量方法。

常規的計時用是頭文件中的clock()函數,精度為1ms,但對于插入排序和冒泡排序對1000 個正序序列排序的情況,耗時只有幾十微秒,故需要設計精確到微秒的測量方式。

代碼如下

double run_time;

_LARGE_INTEGER time_start;

_LARGE_INTEGER time_over;

double dpFreq;

_LARGE_INTEGER f;

void StartTimer() {

QueryPerformanceCounter(&f);

dpFreq = (double)f.QuadPart;

QueryPerformanceCounter(&time_start);}

void EndTimer() {

QueryPerformanceCounter(&time_over);

run_time = 1000000 * (time_over.QuadPart - time_start.QuadPart) / dpFreq;}

實際使用中,在做排序之前調用StartTimer()開始計時,排序之后立刻調用EndTimer()結束計時。時間間隔記錄到全局變量run_timer 中。

3 測試數據的準備

由于初始記錄的關鍵字的分布情況不同,排序算法的耗時也不同。故需要準備以下三種序列。

a)、正序初始序列,存放關鍵字遞增的數據序列。

b)、逆序初始序列,存放關鍵字遞減的數據序列。注意,由于排序基本都是原地重排,為了避免上一次排序的干擾,每次對逆序序列排序之前都必須重新生成逆序序列。

c)、隨機數初始序列,存放關鍵字為隨機數的數據序列。隨機序列進行比較之前需要生成一個隨機序列并將其復制多份,每個排序方式排一份數據,以便讓每種排序方法都針對相同序列并互不干擾。

4 實驗設計

基于以問題為導向,試驗將回答以下問題:

(1)對于正序序列的表,最省時間的排序方式為哪種算法?最費時間的又是哪種算法?

為此我們設計了了下列實驗,首先對正序序列賦值,然后使用直接插入排序、冒泡排序、簡單選擇排序、快速排序、堆排序、兩路歸并排序分別對該序列進行排序。并分別計時,生成結果如下:

圖1 正序序列情況下各種排序算法時間復雜度比較

可見,冒泡排序只需0.026 毫秒,在六種排序算法中耗時最少,因為正序情況下,它的時間復雜度為O(n)。

同時可見,與冒泡法時間復雜度相同的直接插入法,耗時更大。因為雖然執行次數相同,但每次循環中,直接插入法的還需執行移動,而同等情況下冒泡算法幾乎沒有移動次數,故速度更快。

并且對于正序序列,基準為第一個元素的快速排序并不占優勢,它的耗時僅次于簡單選擇排序,因為這種情況下,快速排序對應的二叉排序樹退化為一顆單枝樹,時間復雜度為O(n2)。

對于正序序列,最費時的是簡單選擇,因為同樣的實際復雜度O(n2)下,它的比較次數比快速排序要多。

(2)對于逆序序列,哪種算法最耗時?哪種最省時?實驗結果為

圖2 逆序序列情況下各種排序算法時間復雜度比較

可見,對于1000 個數的逆序序列,堆排序和歸并排序時間性能最好,時間復雜度為O(nlog2n)。直接插入,冒泡,簡單選擇和快速排序的耗時較長,時間復雜度都為O(n2)。

在后四個算法中,最快的是選擇排序,因其移動的次數最少。快速排序在這種情況下比較和移動的次數類似于選擇排序,但由于使用遞歸需要系統分配時間調用遞歸棧,所以耗時比選擇排序略高。冒泡和插入由于在逆序情況下移動和比較的次數都達到了最大值,所以排序性能不好。

(3)對于隨機序列,哪種算法最耗時?哪種最省時?實驗結果為

圖3 隨機序列情況下各種排序算法時間復雜度比較

可見,對于1000 個數以內的隨機序列,快速排序、堆排序和歸并排序時間性能最好。因為這種情況下,時間復雜度為O(nlog2n)。直接插入,冒泡,簡單選擇的耗時都較長,因為這種情況下時間復雜度都為O(n2)。

5 結論

通過實驗,學生對下圖各種排序的時間性能有了更直觀和深入的理解。教學收到了較好的效果。

猜你喜歡
排序
排排序
排序不等式
作者簡介
名家名作(2021年9期)2021-10-08 01:31:36
作者簡介
名家名作(2021年4期)2021-05-12 09:40:02
作者簡介(按文章先后排序)
名家名作(2021年3期)2021-04-07 06:42:16
恐怖排序
律句填空排序題的備考策略
節日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
作者簡介(按文章先后排序)
名家名作(2017年2期)2017-08-30 01:34:24
主站蜘蛛池模板: 久久无码高潮喷水| 欧美在线一二区| 亚洲第一页在线观看| 国产香蕉97碰碰视频VA碰碰看| 成人亚洲天堂| 黄色网址免费在线| 日本黄网在线观看| 亚洲精品麻豆| 亚洲毛片网站| 欧美综合一区二区三区| 91在线播放免费不卡无毒| 欧美日韩免费观看| 蜜芽一区二区国产精品| 国产一区自拍视频| 99久久性生片| 欧美国产视频| 国产黑丝一区| 午夜免费小视频| 国产日韩欧美在线播放| 亚洲区第一页| 亚洲最大福利视频网| 国产毛片高清一级国语 | 成人福利在线视频免费观看| 日韩欧美在线观看| jizz国产视频| 免费国产黄线在线观看| 2021最新国产精品网站| 国产伦片中文免费观看| 日本a∨在线观看| 国产成人综合久久精品尤物| 欧美国产日产一区二区| 国产成人精品免费av| 97国产精品视频人人做人人爱| 亚洲狠狠婷婷综合久久久久| 91国语视频| 欧美成人在线免费| 国产91色在线| 日韩高清成人| AV色爱天堂网| 免费看美女自慰的网站| 97国产精品视频自在拍| 日韩中文精品亚洲第三区| 亚洲精品卡2卡3卡4卡5卡区| 国产精品99r8在线观看| yy6080理论大片一级久久| 日韩二区三区| 19国产精品麻豆免费观看| 国产一区成人| 99久久精品免费视频| 午夜精品久久久久久久无码软件| 99精品视频在线观看免费播放| 经典三级久久| 午夜a视频| 深夜福利视频一区二区| 国产高清在线观看91精品| 亚洲aaa视频| 亚洲毛片一级带毛片基地| 国产精品一区不卡| 精品国产网站| 国产另类视频| 国产精品无码一二三视频| 高清精品美女在线播放| 国产精品第5页| 特级精品毛片免费观看| 中文字幕乱码中文乱码51精品| 97国产精品视频人人做人人爱| 青青青视频91在线 | 在线播放国产99re| 97se亚洲综合在线韩国专区福利| 狠狠色综合网| 免费视频在线2021入口| 国产网友愉拍精品| 亚洲乱码在线播放| 无码免费视频| 免费国产高清视频| 欧美午夜在线观看| 精品亚洲国产成人AV| 欧美不卡视频在线观看| 欧美国产日韩一区二区三区精品影视| 日韩免费视频播播| 免费看的一级毛片| 国产免费福利网站|