要求:将给定数组的比如{6,3,7,1,8,-1}进行由小到大排序,结果应是{-1,1,3,6,7,8}。
冒泡原理:像水泡一样,一个一个的冒出来,简单说就是将一个数组中依次选出最大的,次大的....最后形成一个有序的数组。根据这个想法,两个for循环就可以解决,所以冒泡排序算法的时间复杂度为O(n^2),外层循环进行(arr.length-1)次({6,3,7,1,8,-1}冒出5个后自然就 成序 了),内层要依次进行比较,从第一个开始到(arr.length-外层循环首个数字)。详细可以见下面Java代码:(注意:如果到某个内层循环没有改变位置,就可以直接输出了)
package com.atguigu.sort;
import javax.xml.crypto.Data;
import java.sql.Array;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class BubbleSort {
public static void main(String[] args) {
int arr[] = {6,3,7,1,8,-1};
//测试冒泡排序的时间(大概20秒左右(不同配置电脑运行速度不同)).复杂度,事后的,事前分析是O(n^2)
// int [] arr = new int[80000];
// for (int i = 0; i <arr.length ; i++) {
// arr[i] = (int) (Math.random()*1000000);
// }
// D