2 12 大O法應用 基礎排序演算法的效能對比

2021-09-10 07:57:19 字數 1396 閱讀 2110

//先來看一下氣泡排序的**:

public static void bublesort(int nums) 

} }}

//氣泡排序的優化

public static void bublesort(int nums) 

} }}

//簡單插入排序演算法**如下

public static void selectionsort(int nums) 

}} }

public static void main(string args)

long begintime = system.currenttimemillis();

bublesort(numsa);

long endtime = system.currenttimemillis();

system.out.println("氣泡排序所耗費的時間為: "+(endtime-begintime)+"ms");

begintime = system.currenttimemillis();

insertionsort(numsb);

endtime = system.currenttimemillis();

system.out.println("插入排序所耗費的時間為: "+(endtime-begintime)+"ms");

begintime = system.currenttimemillis();

selectionsort(numsc);

endtime = system.currenttimemillis();

system.out.println("選擇排序所耗費的時間為: "+(endtime-begintime)+"ms");

begintime = system.currenttimemillis();

arrays.sort(numsd);

endtime = system.currenttimemillis();

system.out.println("快速排序所耗費的時間為: "+(endtime-begintime)+"ms");

}}

執行結果為:

//和理論算的稍許有些偏差但可以發現快速排序的所耗費的時間是最短的,所耗費的時間大概是其他o(

演算法基礎 二 大O分析法 下

同樣,我們先看一段 你可以嘗試先自己分析一下它的時間複雜度 n 表示切片arrary的長度 func find arrary int,n int,x int pos int i 0 pos 1 for i可以看出來,這段 要事先的功能是,在乙個無序的切片中,查詢變數x出現的位置。如果沒有找到,就返回...

大O記法與排序演算法

大o記號 常見演算法的時間複雜度如下圖所示 排序演算法的核心就是 compare and swap,簡稱cas。具體的排序演算法介紹見部落格 常用排序演算法總結 一 堆排序演算法涉及到堆這種資料結構,詳細的介紹如下 排序演算法 三 之堆排序 為什麼要介紹排序演算法?因為排序演算法是其它高效演算法的基...

演算法學習 大O表示法

上一節我們使用了兩種不同的方式來獲得兩個數的最大公約數,那麼如何判斷我們應該使用哪一種方式呢?這裡就涉及到了演算法的時間複雜度 空間複雜度 穩定性等幾個方面的因素,這次我們要討論的大o表示法就是用來表示時間複雜度。大o表示法法讓你能夠比較運算元,它指出了演算法執行時間的增速 演算法 在開始學習之前請...