什么是算法 快速排序算法在什么情況下性能會變的很差?
快速排序算法在什么情況下性能會變的很差?首先,它是一個排序算法。排序算法是將無序數(shù)據(jù)組合轉(zhuǎn)化為有序數(shù)據(jù)組合。有序數(shù)據(jù)組合的最大優(yōu)點是,當(dāng)你定位和采用數(shù)據(jù)時,會非常方便,因為數(shù)據(jù)是有序的,所以你可以避免
快速排序算法在什么情況下性能會變的很差?
首先,它是一個排序算法。排序算法是將無序數(shù)據(jù)組合轉(zhuǎn)化為有序數(shù)據(jù)組合。有序數(shù)據(jù)組合的最大優(yōu)點是,當(dāng)你定位和采用數(shù)據(jù)時,會非常方便,因為數(shù)據(jù)是有序的,所以你可以避免代碼設(shè)計中很多不必要的麻煩,因為當(dāng)你推斷數(shù)據(jù)之間的關(guān)系時會顯示無序的數(shù)據(jù)快速排序是一種排序,在最壞的情況下,它與其他排序方法沒有什么不同,但在最好的情況下,它將比一般的排序方法節(jié)省更多的時間。這里的一般排序是指:bubble、hill、insert等常規(guī)排序方法。其實我比較喜歡插入,但是對于鏈表操作比較方便,因為它操作簡單
算法時間復(fù)雜度的計算方法如下:
1。將運行時間中的所有加法常數(shù)替換為常數(shù)1;
2。在修改后的運行時函數(shù)中保留高位項;
3。如果最高階項存在且不是1,則刪除常數(shù)乘以該項;
4。當(dāng)n增加到一定值時,n的最大冪次項對時間復(fù)雜度的影響最大,其他常數(shù)項對時間復(fù)雜度的影響最大,數(shù)項和低冪次項可以忽略不計。
結(jié)論:算法消耗的時間等于算法中每條語句的執(zhí)行時間之和。算法轉(zhuǎn)換成程序后,每條語句執(zhí)行一次所需的時間取決于指令性能、機器速度和編譯生成的代碼質(zhì)量等不確定因素。