冒泡排序


冒泡排序

 

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;
  }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM