冒泡排序

冒泡排序

 

package com.zishi.Array;

import java.util.Arrays;

public class ArrayDemo07 {
   //冒泡排序
   //1、比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
   //2.每一次比较,都会产生出一个最大,或者最小的数字;
   //3.下一轮则可以少一次排序!
   //4.依次循环,直到结束!
   public static void main(String[] args) {
       int[] a = {1, 2, 5, 6, 2, 5, 6, 25, 2, 6, 22, 565};

       //sort(a);
       //System.out.println(Arrays.toString(a));

       int[] sort = sort(a);   //调用完我们自己写的排序方法后,返回一个排序后的数组
       System.out.println(Arrays.toString(sort));
  }
   public static int[] sort(int[] a){
       //临时变量
       int temp = 0;

       boolean flag = false;  //通过flag标识位减少没有意义的比较

       //外层循环,判断我们这个要走多少次
       for (int i = 0; i < a.length-1; i++) {
           //内存循环,比较两个数,如果第一个数比第二个数大,则交换位置
           for (int j = 0; j < a.length-1-i; j++) {
               if(a[j+1]<a[j]){
                   temp = a[j];
                   a[j] = a[j+1];
                   a[j+1] = temp;
              }
          }
           if(flag == false){
               break;
          }
      }



       return a;
  }
}

 

posted @ 2021-07-23 01:29  子时未临  阅读(457)  评论(0编辑  收藏  举报