• 排序算法之冒泡排序


    1. 基本介绍:

      冒泡排序(Bubble Sorting)的基本思想:通过对待排序序列从前向后(从下表较小的元素开始),依次比较相邻元素的值,如发现逆序则交换,使值较大的元素逐渐从前移向后面。

      因为在排序过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此对序列是否有序首先要做判断。(就是最冒泡排序的优化)

    2. 冒泡排序的规则

      1. 一共进行arr.length-1次大的循环

      2. 每一趟排序的次数都在逐渐减少

      3. 如果发现在某趟排序中数组已经有序,就可以提前结束(冒泡排序的优化

    3. 冒泡排序过程演示 
    4. 对整个冒泡算法的理解,通过一个例子
    5.  下面是具体代码演示

    6. package com.gcy.sort;

      import java.util.Arrays;

      /**
      * 冒泡排序
      *
      * @author Administrator
      *
      */
      public class BubbleSort {

      public static void main(String[] args) {
      // 定义需要排序的数组
      int[] array = { 3, 9, -1, 10, };
      System.out.println("未排序的数组:" + Arrays.toString(array));

      int[] arr = bubbleSory(array);
      System.out.println("排完序的数组:" + Arrays.toString(arr));

      // 定义临时变量
      /*
      * int temp = 0; for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j
      * < array.length - 1 - i; j++) { if (array[j] > array[j + 1]) { temp =
      * array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } }
      * System.out.println("第"+(i+1)+"趟排序");
      * System.out.println(Arrays.toString(array));
      *
      * }
      */
      }

      public static int[] bubbleSory(int[] array) {

      // 定义临时变量
      int temp = 0;
      //设置一个表示不变量,表示是否进行过交换
      boolean flag=false;
      for (int i = 0; i < array.length - 1; i++) {
      for (int j = 0; j < array.length - 1 - i; j++) {
      if (array[j] > array[j + 1]) {
      flag=true;
      temp = array[j];
      array[j] = array[j + 1];
      array[j + 1] = temp;
      }
      }
      System.out.println("第"+(i+1)+"趟排序");
      System.out.println(Arrays.toString(array));

      if(!flag) {
      break;
      }else {
      flag=false;
      }
      }

      return array;
      }

      }

    7. 在这个代码中算法是经过优化的,就是当在某一趟已经排出了顺序,后面的就不用再走,有兴趣的可以自己试一试。我在这给一个案例[1,2,3,4,5]输入这个本来就有序的数组,看一下会发生什么结果,上面彩色标出的就是代码的优化,刚开始理解可以不写那部分代码
  • 相关阅读:
    slenium截屏
    效率提升
    R语言网页爬虫
    高性能计算
    数据操作
    数据库操作
    面向对象编程
    元编程
    R 的内部机制
    数据处理
  • 原文地址:https://www.cnblogs.com/juddy/p/13766884.html
Copyright © 2020-2023  润新知