zoukankan      html  css  js  c++  java
  • 冒泡排序(Bubble Sort)

    冒泡排序的基本思路

      冒泡排序是一种效率极低的排序,首先它需要知道数组的有效数据长度,对数据第一个和第二个两两比较按照比较规则进行交换,然后第二个数据和第三个数据进行比较,按照比较规则进行交换;第一轮比较完成,再从头比较;以此类推数组中的每个数据都彼此比较过。

    如果有效长度为n,那么冒泡排序需要进行n-1轮比较。每一轮比较n-j次比较,j代表轮次。

    如图分析从大到小排序:

    原数组有效长度为5,第一轮比较5-1次。

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

    第二轮比较5-2次,得到第二个最值4。

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

    第三轮比较5-3次,得到第三个最值3。

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

    有效长度为5,一共进行5-1轮比较,最后一轮比较得到排序结果

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

     代码分析:

     1 package com.yxiao.test;
     2 //冒泡排序进行数组元素排序
     3 public class BubbleSortDemo {
     4     public static void main(String[] args) {
     5         int[] arr = {5,4,3,2,1};//静态初始化一个数组
     6         //冒泡排序
     7         for(int i = 0; i < arr.length-1; i ++) {//length个数需要length-1轮比较
     8             for(int j = 0; j < arr.length - 1 - i; j ++) {//每次进行length-1-i次比较
     9                 if(arr[j] > arr[j + 1]) {//如果当前元素大于后面一个元素则进行交换
    10                     int temp = arr[j];
    11                     arr[j] = arr[j + 1];
    12                     arr[j + 1] = temp;
    13                 }
    14             }
    15         }
    16         for (int i : arr) {//遍历排序后的数组
    17             System.out.print(i + " ");
    18         }
    19     }
    20 }
    输出结果:1 2 3 4 5 
  • 相关阅读:
    当使用vue的按键修饰符不起效果的时候怎么办?如@keyup.enter = '' ;
    Android 破解
    粒子跟随3
    关于国际化
    一些js及css样式
    Could not find method google() for arguments [] on repository container.
    redis
    window cmd 自动补全
    gradle中的 settings.gradle
    for(String s:list)的运行
  • 原文地址:https://www.cnblogs.com/yxiaooutlook/p/7641868.html
Copyright © 2011-2022 走看看