编程的50种基础算法 最高效的排序算法?
最高效的排序算法?
直接插入排序:数据有序时,执行效率最高,时间复杂度为O(n);数据基本逆序时,执行效率最低,时间复杂度为O(N2)。因此,数据越接近有序,直接插入排序算法的性能越好。希尔排序:时间效率为O(n(log2n)2)直接选择排序:时间效率为O(n^2)-虽然移动次数较少,但比较次数仍然较多。堆排序:时间效率是O(nlog2n)气泡排序:时间效率是O(n^2)-因为我们必须考虑最坏的情况(所有数据元素的顺序相反),当然,最好的情况是所有数据元素都是按顺序排列的,此时,循环是n-1次,时间复杂度为O(n)快速排序:时间效率:一般情况下,时间复杂度为O(nlog2n),最坏情况是所有数据元素都是正序或逆序的。此时,标准元素将当前数组划分为一个子数组,其大小比当前数组小1。此时,时间复杂度为O(N2)]~]。该问题的最优时间复杂度为O(n)。所以如果一定要使用排序算法,如果标题条件允许,请尽量选择o(n)排序算法如bucket排序。另一种解决方案是构建一个大小为10的堆,按顺序遍历数组,并在堆满时移除最上面的元素。这样,最多可获得10个元素。时间复杂度为O(nlog10)。
编程的50种基础算法 c语言必背100代码 八大排序算法图解
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。