码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序

时间:2020-11-30 16:15:19      阅读:31      评论:0      收藏:0      [点我收藏+]

标签:产生   循环   sde   flag   public   冒泡排序   arrays   package   ack   

冒泡排序

  • 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序!
  • 冒泡的代码还是相当简单的,两层循环,外层冒泡层数,里层依次比较,江湖中人人皆知。
  • 我们看到嵌套循环,应该立马可以得出这个算法的时间复杂度为O(n^2)
package array;

import java.util.Arrays;

public class ArraysDemo07 {
        public static void main(String[] args) {
        /*冒泡排序
        1.比较数组中,两个相邻的元素,如果第一个数比第二个大,就交换他们的位置
        2.每一次比较,都会产生出一个最大,或者最小的数字
        3.下一轮你则可以少一次排序
        4.依次循环,直到结束
         */
            int[] a = {31,51,46,32,5,1,6,41};
            int[] sort = sort(a);
            System.out.println(Arrays.toString(sort));

        }
        public static int[] sort(int[] array){
            int temp = 0;               //临时变量
            for (int i = 0; i < array.length-1; 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;
        }
}

冒泡排序

标签:产生   循环   sde   flag   public   冒泡排序   arrays   package   ack   

原文地址:https://www.cnblogs.com/bizhenghe/p/14038707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!