首页 > 其他分享 >冒泡排序

冒泡排序

时间:2022-10-03 09:22:06浏览次数:29  
标签:sort arrays 冒泡排序 int flag public

  1. 冒泡排序是最为出名的排序算法之一,共有八大排序。
  2. 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知。
  3. 我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2)。
  4. 思考:如何优化?

========================================================================

举例代码

package com.tea.array;

import java.util.Arrays;

public class ArrayDemo09 {
    public static void main(String[] args) {
        int[] a = {1,6,8,3,5,34,2};
        int[] sort = sort(a);
        System.out.println(Arrays.toString(sort));
    }
    //冒泡排序
    //1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换它们的位置
    //2.每次比较都会产生一个最大与最小
    //3.下一轮则可以少一次排序
    //4.依次循环,直到结束
    public static int[] sort(int[] arrays){
        int temp = 0;
        //外层循环:判断我们要走多少次
        for (int i = 0; i < arrays.length-1; i++) {
            
            boolean flag = false; //通过flag标识位减少没有意义的比较
            
            //内层循环:比较大小,如果第一个比第二个大,则交换数组
            for (int j = 0; j < arrays.length-1-i; j++) {
                if (arrays[j]>arrays[j+1]){
                    temp = arrays[j];
                    arrays[j] = arrays[j+1];
                    arrays[j+1] = temp;
                    flag = true;
                }
            }
            if(flag==false){
                break;
            }
        }
        return arrays;
    }
}

========================================================================

标签:sort,arrays,冒泡排序,int,flag,public
From: https://www.cnblogs.com/bobocha/p/16750018.html

相关文章

  • 冒泡排序
    这里求解的是一个数组中的最大值和次最大值,#include<stdio.h>main(){ intarr[20]; inti,j,max=0,temp; for(i=0;i<20;i++) scanf("%d",&arr[i]); //直接用......
  • 冒泡排序
    关于冒泡排序的理解packagearray;importjava.util.Arrays;publicclassShort{publicstaticvoidmain(String[]args){int[]z={1,4,113,5,213,7,3,......
  • 冒泡排序
    inta[]={23,1,55,7,4,2};intn=6,i,j,temp;for(i=1;i<6;i++)//趟数{for(j=0;j<n-i;j++)//每趟的顺序比较 if(a[j]>a[j+1]) {......
  • Arrays类、冒泡排序、稀疏数组
    Arrays类数组的工具类java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作......
  • python冒泡排序例子
    #冒泡排序nums=[1,3,9,4,2,6,8,7,0]length=len(nums)foriinrange(length):forjinrange(length-1-i):ifnums[j]>nums[j+1]:nums[......
  • 14 -- 排序算法之冒泡排序
    冒泡排序的基本思想:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的数逐渐从前移向后,就像水底下的气泡一样逐渐向上冒。......
  • go-冒泡排序-练习
    packagemainimport"fmt"funcmain(){ nums:=[]int{1,5,4,3,2,9,8,7,6,0}/* //第一轮 fori:=0;i<len(nums)-1;i++{ ifnums[i]>nums[i+1]{ nums[i],nums......
  • java基础-冒泡排序以及稀疏数组
     java基础 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16720908.html Ø 冒泡排序原理:比较数组中,两个相邻的元......
  • 冒泡排序
    简介代码实现publicclassBubbleSort{ publicstaticvoidmain(String[]args){ intarr[]={3,9,-1,10,20};//第1趟 inttemp......
  • 「浙江理工大学ACM入队200题系列」问题 A: 零基础学C/C++34—— 3个数比较大小(冒泡排
    深夜写的,代码都还没来得及跑一便,可能有错误,欢迎指出,后续会检验一遍并修改错误.本题是浙江理工大学ACM入队200题第四套中的A题,同时给出了冒泡排序和选择排序算法......