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

    基本思路:

           冒泡排序是一种简单的交换类排序。其基本思路是,从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。

           冒泡排序需要定义两层for循环,每次取出循环位置的数值与下一个位置的数值进行比较,如果数组大于或者小于(由代码中的if逻辑判断)则交换两个数值在集合中的位置。

    冒泡排序算法的运作如下:

    1.  比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2.  对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3.  针对所有的元素重复以上的步骤,除了最后一个。
    4.  持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
      package cn.zhaoqiang.tuxing;
      /*
       * 冒泡排序 
       * 
       * 一位老师的黄金法则(出自于微冷的雨)
       * 口诀:
       * 1.内外初值0开始
       * 2.外层结束需-1,内层减i再-1
       * 3.打擂算法做对比,对比j和j+1
       * 4.如若不想报异常,等号万万不能要      
       * */
      
      public class mppx {
          public static void main(String[] args) {
              int stop = 0;
              int [] num = {1,5,3,7,8};   //定义一个数组
              for (int i = 0; i < num.length-1; i++) {   //最多做n-1趟排序
                  //对当前无序区间num[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
                  for (int j = 0; j < num.length-1-i; j++) {
                      if(num[j]>num[j+1]){   //把小的值交换到后面
                          stop =num[j];
                          num[j]=num[j+1];
                          num[j+1]=stop;
                      }
                  }
              }
              for (int k = 0; k < num.length; k++) {
                  System.out.print(num[k]);
              }
          }
      
      }
  • 相关阅读:
    安装SSH、配置SSH无密码登录 ssh localhost
    ubuntu系统中java开发环境的搭建
    大二暑假周进度报告之七
    大二暑假周进度报告之六
    Hadoop2.9.1安装教程_环境Ubuntu_VMware安装
    大二暑假周进度报告之五
    DDWRT路由WEB认证之Wiwiz
    在不支持jffs2的DD-WRT里安装Wiwiz的3种方法
    nodogsplash在指定网络下工作
    使用wiwiz实现WiFi无线热点认证与计费网关
  • 原文地址:https://www.cnblogs.com/wqtzhaoqiang/p/6698359.html
Copyright © 2011-2022 走看看