zoukankan      html  css  js  c++  java
  • 冒泡排序

    给大家简单介绍一下我对冒泡排序的理解

    (一)先简单介绍一下什么叫冒泡排序

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法
    它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。
    这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

    (二)冒泡排序的分析过程

     给定一个数组,首先遍历一遍数组得出其长度大小:arr.length,通过如下简单的数学规律分析可知每一个元素都要进行arr.length-1-i轮次进行比较

                arr.length-1-i
          i=0(第1轮)  比3次
          i=1(第2轮)  比2次
          i=2(第3轮)  比1次
    1. 经过第一轮比较,即当i=0时,我们可以的得到此轮比较中数组中最大的数据也就是78
      i=0
        j=0 78和45比,换,45,78,56,4
        j=1 78和56比,换,45,56,78,4
        j=2 78和4比,换,45,56,4,78-----------78出来了
      

        

    2. 经过第二轮比较,即当i=1时,我们可以的得到此轮比较中数组中最大的数据也就是56
      i=1
        j=0 45和56比,不换
        j=1 56和4比,换,45,4,56,78----------56出来了
      

        

    3. 经过第三轮比较,即当i=2时,我们可以的得到此轮比较中数组中最大的数据也就是45
      i=2
        j=0 45和4比,换,4,45,56,78----------45出来了
      

        

    (三)最终实现的代码如下:
    package com.helly;
    
    public class Sort {
        public static void main(String[] args) {
    
    
            int[] arr = {78, 45, 56, 4}; //升序(4,45,56,78)
    
            //控制轮
            for (int i = 0; i < arr.length - 1; i++) {
                //控制次
                for (int j = 0; j < arr.length - 1 - i; j++) {
                    if (arr[j] > arr[j + 1]) {
                        int t = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = t;
                    }
                }
            }
            for (int i = 0; i <arr.length ; i++) {
                System.out.print(arr[i] + ",");
            }
       }
    }

      

  • 相关阅读:
    python 函数(二)
    python 函数(一)
    python 文件操作
    python标准数据类型 Bytes
    购物车代码
    关于python数据类型的一些举例
    栈的应用实例
    python 数据类型
    python相关的编码,运算
    Oracle篇 之 查询行及概念
  • 原文地址:https://www.cnblogs.com/dxllp/p/10565198.html
Copyright © 2011-2022 走看看