排序算法入门之冒泡排序及其优化(java实现)
冒泡排序思想(从小到大):
比较相邻两个元素,如果第一个元素比第二个元素大,就交换他们的位置。第一趟,从第一个元素开始,第一个元素和第二个元素比较,如果第一个元素比第二个元素大,则交换位置;接下来比较第二、第三个元素,大的放后面,以此类推,直到最后两个。第一趟比较结束后,最大的元素放到了最后一个位置。接下来进行第二趟排序,从第一个元素到倒数第二个元素(因为最后一个已经是最大的了)执行上面步骤。依次执行下去。
此时的最优最差平均时间复杂度为O(n^2)。
优化:加一个标志位,当交换元素时为true,没有交换时为false,排序结束。
此时的优化算法的最优时间复杂度为O(n),最差和平均是O(n^2)。