冒泡排序是比较经典的排序方法,是一种用时间换空间的排序方法,原理:
-
比较相邻的元素,如果第一个比第二个大,就交换他们两个,也就说,每次比较完了,就有最大值出现。
-
对每一对相邻元素做同样的工作,从第一开始对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3,每次比较完后下一趟就会少一个元素参与比较
冒泡排序算法的优缺点:
优点:比较简单,空间复杂度较低,是稳定的;
缺点:时间复杂度太高,率效慢、一轮比较只需要换一次位置;效率不高 (如果一个数组有n个数,那么排序完成后需要比较n*(n-1)/2次)
一般实现代码如下:
package cn.edu.day02;
/**
* 冒泡排序算法在数组的实现
*/
public class ArrayDemo02 {
public static void main(String[] args) {
int[] arr = {65,42,36,98,8,60,89};
int len = arr.length;
for (int j=0;j<len-1;j++){//确定排序循环次数
int lent = arr.length;
for (int i=0;i<lent-1-j;i++){//确定比较次数
if (arr[i]>arr[i+1]){
//交换
int tmp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = tmp;
}
}
}
//打印排序后的结果
for (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}