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

 

posted @ 2021-07-29 08:43  时间最考验人  阅读(256)  评论(0编辑  收藏  举报