1. 数据结构和算法(十四)冒泡排序算法
1.1 什么是冒泡排序
- 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。
1.2 算法基本思想
比较相邻的两个数,如果第一个数比第二个数大,则两数交换。对之后的相邻元素进行同样的工作,从开始到最后一对,这样进行一次排序后,数据的最后一位会是最大值 ,第一次循环进行的次数为 array.length-1。之后对所有的元素重复以上的步骤,且以后每次循环的次数为array.length-1-i (i为循环第几次 ,i 从零开始);重复上述
1.3 冒泡排序复杂度分析
冒泡排序复杂度当最好的情况时,也就是要排序的表本身就是有序的,那么我们比较次数,那么可以判断出就是n-1次的比较,没有数据交换,此时时间复杂度为O(n)。当最坏的情况,即待排序是逆序的情况,此时需要比较
次,此时时间复杂度为
1.3 冒泡排序代码实现
package com.yuanxw.datastructure.chapter14;
import java.util.Arrays;
/**
* 冒泡排序
*/
public class BubbleSort