对于大多数学程序的人来说。冒泡法排序肯定不陌生,但如何使算法变得更加完美,这就看个人修为了。接下来用C语言给大家一种改进的冒泡法排序。先看代码
在这里同样可以看到时间复杂度依然是O(n^2),但在实际运用中,上面的排序要比原始版的节省许多的时间。为什么会节省时间呢?
优势:原始版的算法,经过每一次的循环只能排一个数,也就是必须要经过n(n-1)/2次比较才能排好序,上面实现的算法就不用了,假如有已经排好序的区间,会直接跳过,不需要进行排序,大大缩短了排序时间,或者数组本身不在进行交换同样会跳出循环,完成排序。
本人文字表达实在是拙,还是请看上面的代码吧(实在看不懂的话,那笔走一遍,你就什么都明了),程序猿的交流不需要文字,代码就是我们沟通的桥梁。如果上述有什么错误,欢迎大家指出