希爾排序算法時(shí)間復(fù)雜度 各種排序算法的復(fù)雜度?
各種排序算法的復(fù)雜度?快速排序的時(shí)間復(fù)雜度是nlogn(基于2的n×log的對數(shù))的擴(kuò)展:快速排序是冒泡排序的改進(jìn)??焖倥判蚴怯蒀.A.R.Hoare在1962年提出的。它的基本思想是用一步排序法將要
各種排序算法的復(fù)雜度?
快速排序的時(shí)間復(fù)雜度是nlogn(基于2的n×log的對數(shù))的擴(kuò)展:快速排序是冒泡排序的改進(jìn)??焖倥判蚴怯蒀.A.R.Hoare在1962年提出的。它的基本思想是用一步排序法將要排序的數(shù)據(jù)分成兩個(gè)獨(dú)立的部分,其中一部分的數(shù)據(jù)比另一部分的數(shù)據(jù)小。然后根據(jù)該方法對兩部分?jǐn)?shù)據(jù)進(jìn)行快速排序,整個(gè)排序過程可以遞歸進(jìn)行,從而使整個(gè)數(shù)據(jù)成為一個(gè)有序的序列。各種排序方法的時(shí)間復(fù)雜度如下:
排序算法的時(shí)間復(fù)雜度計(jì)算?
算法時(shí)間復(fù)雜度的計(jì)算方法如下:
1。將運(yùn)行時(shí)間中的所有加法常數(shù)替換為常數(shù)1;
2。在修改后的運(yùn)行時(shí)間函數(shù)中保留高位項(xiàng);
3。如果最高階項(xiàng)存在且不是1,則刪除常數(shù)乘以該項(xiàng);
4。當(dāng)n增加到一定值時(shí),得到n的最大冪次項(xiàng),該項(xiàng)對時(shí)間復(fù)雜度的影響最大,而其它常數(shù)項(xiàng)和低冪次項(xiàng)可以忽略。
結(jié)論:算法消耗的時(shí)間等于算法中每條語句的執(zhí)行時(shí)間之和。算法轉(zhuǎn)換成程序后,每條語句執(zhí)行一次所需的時(shí)間取決于指令性能、機(jī)器速度和編譯生成的代碼質(zhì)量等不確定因素。
在用鄰接表表示圖時(shí),拓?fù)渑判蛩惴〞r(shí)間復(fù)雜度為多少?
設(shè)圖中有n個(gè)頂點(diǎn)和e個(gè)弧,則鄰接表拓?fù)渑判虻臅r(shí)間復(fù)雜度為O(n,e) 幾種常用排序算法的復(fù)雜度如下:平均最差的是插入n^2n^2n Hill n^1.3//bubble n^2n^2n fast nlogn^2nlogn select n^2n^2n^2n^2 stack nlognlognnlogn merge nlognlognnlogn基數(shù)D(n,R)D(n,R)D(n,R)D(n,R)R)其中,最佳,最壞復(fù)雜度和平均復(fù)雜度都是相同的,它們是獨(dú)立于初始排序的排序方法,即選擇排序、堆排序、合并和基數(shù)排序