冒泡排序是一种简单的排序算法
算法的思路为:
-
比较相邻的元素,如果第一个比第二个大,就交换它们两个的顺序
-
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
-
针对所有的元素重复以上的步骤,除了最后一个
-
重复步骤1~3,直到排序完成
算法稳定性:
如果待排序的序列中存在两个或两个以上具有相同关键词的数据,排序后这些数据的相对次序保持不变,通俗地讲,就是两个相同的数的相对顺序不会发生改变,那么该排序算法就是稳定的;冒泡排序是稳定的排序算法
时间复杂度:
对于n位的数列则有比较次为(n-1)+(n-2)+...+1=n*(n-1)/2,这就得到了最大的比较次数,n(n-1)/2=(n方-n)/2计算时间复杂度的时候,忽略常数项1/2,再忽略低阶项n,得到冒泡排序的时间复杂度为O(㎡).(m即代表n)
代码:
package paixu.jiaohuan; import java.util.Arrays; public class BubbleSort { public static void main(String[] args) { int[] arr={9,8,5,4,2,0}; bubbleSort(arr); System.out.println(Arrays.toString(arr)); } public static void bubbleSort(int arr[]){ for(int i=1;i<arr