冒泡排序为什么最佳负责度为O(n)
俗话说,武功高强与否在于一个人的内功,真正高手之间的对决,都在于内功!程序员也一样,要想进阶,必须从基础抓取,算法更是重中之重,于是最近在研究算法,先从排序练起。
经常看见书上、博客上说冒泡排序最佳复杂度为O(n),可我看着代码一直算的是O(n^2),代码如下:
后来经过一番研究,发现原来我写的冒泡排序只是个基本的demo,复杂度始终是O(n^2),后来经过了一些优化,发现最佳复杂度能达到O(N),代码如下:
当传进去的数组为正序时,会执行
这样,第一层循环只执行了1次,所以复杂度为O(N)。
在此做下记录,希望能帮助有此有疑问的同学。
,