Java数组06——冒泡排序
例子:
package array;
import java.util.Arrays;
public class ArrayDemon08 {
public static void main(String[] args) {
int[] a={1,3,2,4,6,5};
int[] sort=sort(a);// 调用完我们自己写的排序方法以后,返回一个排序的数组
System.out.println(Arrays.toString(a));// 打印数组
}
//冒泡排序 O(n*n)
//1. 比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
//2. 每一次比较都会产生一个最大或者最小的数字
//3. 下一轮可以少依次排序
//4. 依次循环,直到结束!
//数组类型
public static int[] sort(int array[]){
int temp=0;
// 外层循环,判断我们要走几趟
for (int i = 0; i <array.length ; i++) {
boolean flag=false;// 通过flag标识位减少没有意义(已经有序)的比较
// 内层循环,比较判断两个数,符合条件就交换
for (int j = 0; j <array.length-1-i ; j++) {
if(array[j+1]<array[j]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=true;
}
}
if(flag=false){//表明已经有序了 不用在另外比较
break;
}
}
return array;// 返回数组
}
}
学习内容源自视频:b站狂神说Java