公認(rèn)最好的排序算法 各種排序算法的復(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)。快速排序是由C.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ù)據(jù)有序時(shí),執(zhí)行效率最好,時(shí)間復(fù)雜度為O(n);數(shù)據(jù)基本相反時(shí),執(zhí)行效率最差,時(shí)間復(fù)雜度為O(N2)。因此,數(shù)據(jù)越接近有序,直接插入排序算法的性能越好。希爾排序:時(shí)間效率為O(n(log2n)2)直接選擇排序:時(shí)間效率為O(n^2)-雖然移動(dòng)次數(shù)較少,但比較次數(shù)仍然較多。堆排序:時(shí)間效率是O(nlog2n)氣泡排序:時(shí)間效率是O(n^2)-因?yàn)槲覀儽仨毧紤]最壞的情況(所有數(shù)據(jù)元素的順序相反),當(dāng)然,最好的情況是所有數(shù)據(jù)元素都是按順序排列的,此時(shí),循環(huán)是n-1次,時(shí)間復(fù)雜度為O(n)快速排序:時(shí)間效率:一般情況下,時(shí)間復(fù)雜度為O(nlog2n),最壞情況是所有數(shù)據(jù)元素都是正序或逆序的。此時(shí),每個(gè)標(biāo)準(zhǔn)元素將當(dāng)前數(shù)組劃分為一個(gè)子數(shù)組,子數(shù)組的大小比當(dāng)前數(shù)組小1,時(shí)間復(fù)雜度為O(N2)