新手从业路-为自己回顾知识的同时,也希望和大家分享经验:

话不多说,上代码

public class 冒泡排序 {

/**
     * @param admin
     * @2017.12.4
     */
    public static void main(String[] args) {
       int[][] array=new int[10][3];    //新建一个二维数组
       
       //对数组进行赋值(以日期为例)
       array[0][0]=2015;array[0][1]=10;array[0][2]=23;
       array[1][0]=2016;array[1][1]=8;array[1][2]=14;
       array[2][0]=2017;array[2][1]=3;array[2][2]=7;
       array[3][0]=2018;array[3][1]=12;array[3][2]=19;
       array[4][0]=2017;array[4][1]=9;array[4][2]=25;
       array[5][0]=2017;array[5][1]=6;array[5][2]=1;
       array[6][0]=2017;array[6][1]=4;array[6][2]=3;
       array[7][0]=2017;array[7][1]=4;array[7][2]=7;
       array[8][0]=2019;array[8][1]=10;array[8][2]=6;
       array[9][0]=2017;array[9][1]=12;array[9][2]=15;
       
       int i, j, exchange;  //声明需要用到的变量,其中exchange相当于一个用于交换的容器
       
       //利用冒泡排序原理对数据进行重新排列(日期最新的排在最前面)
       for (i = array.length - 1; i >=1 ; i--) {
           for (j = i; j <= array.length - 1; j++) {
             if (array[j - 1][0] < array[j][0]) {
               exchange = array[j][0]; array[j][0] = array[j - 1][0]; array[j - 1][0] = exchange;   //更换顺序
               exchange = array[j][1]; array[j][1] = array[j - 1][1]; array[j - 1][1] = exchange;   //更换顺序
               exchange = array[j][2]; array[j][2] = array[j - 1][2]; array[j - 1][2] = exchange;   //更换顺序
              
             }else{
               if (array[j - 1][0] == array[j][0] && array[j - 1][1] < array[j][1]){
                   exchange = array[j][0]; array[j][0] = array[j - 1][0]; array[j - 1][0] = exchange;   //更换顺序
                   exchange = array[j][1]; array[j][1] = array[j - 1][1]; array[j - 1][1] = exchange;   //更换顺序
                   exchange = array[j][2]; array[j][2] = array[j - 1][2]; array[j - 1][2] = exchange;   //更换顺序
               }else{
                 if (array[j - 1][0] == array[j][0] && array[j - 1][1] == array[j][1] && array[j - 1][2] < array[j][2]){
                     exchange = array[j][0]; array[j][0] = array[j - 1][0]; array[j - 1][0] = exchange;   //更换顺序
                     exchange = array[j][1]; array[j][1] = array[j - 1][1]; array[j - 1][1] = exchange;   //更换顺序
                     exchange = array[j][2]; array[j][2] = array[j - 1][2]; array[j - 1][2] = exchange;   //更换顺序
                 }
               }
             }
                     }
                   }

//打印出来看看效果
       for(i=0;i<array.length;i++){
           System.out.println(array[i][0]+"年"+array[i][1]+"月"+array[i][2]+"日");
       }
    }
}

显示的效果:

晓莲说-何不原创:java 实现二维数组冒泡排序的更多相关文章

  1. Java的二维数组的应用及杨辉三角的编写

    (1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...

  2. Java基础--二维数组

    1.二维数组的定义 二维数组表示行列二维结构,在栈空间中的二维数组的地址指向堆空间中的一维数组,堆空间中的一维数组的地址又指向一维数组所在的内存空间. 2.二维数组的声明 二维数组声明有3种方式,推荐 ...

  3. java、二维数组详解!

    /* java 二维数组的概念 使用方法! 1.什么是二维数组? 答案:数组的数组! 他的每一个元素都是数组!二维数组是(存储一维数组的)一维数组. 2.如何定义?(以二维数组为列) int arr[ ...

  4. 实验----Java的二维数组的应用及杨辉三角的编写

    (1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...

  5. 剑指offer编程题Java实现——二维数组中的查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.   下面是我实现的代码 ...

  6. 题目一:使用Java实现二维数组中的查找

    考点:数组       题目:二维数组中的查找   描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判 ...

  7. Java Array二维数组使用

    二维数组:元素为一维数组的数组 package myArray.arrayarray; /* *二维数组:元素为一维数组的数组 * * 定义格式: * A:数组类型[][] 数组名: (推荐用法) * ...

  8. [19/03/13-星期三] 数组_二维数组&冒泡排序&二分查找

    一.二维数组 多维数组可以看成以数组为元素的数组.可以有二维.三维.甚至更多维数组,但是实际开发中用的非常少.最多到二维数组(我们一般使用容器代替,二维数组用的都很少). [代码示例] import ...

  9. 10-20C#基础---一维、二维数组&&冒泡排序

    一.一维数组 1.定义:是某一种数据类型的数据的组合,数组用来分组基本类型或相同类型的对象.数组中的实体叫做数组的元素或成员. 2. 格式:int[ ] shuzu=new int[ 6];存放int ...

随机推荐

  1. canvas+gif.js打造自己的数字雨头像

    前言 昨天 是1024程序员节,不知道各位看官过的怎么样.既然是过节,就要有个过节的样子,比方说,换个头像

  2. Visual Studio中让一个JS文件智能提示另一个JS文件中的成员

    当一个Web页面引用了两个JS文件(假如分别叫common.js和JScript1.js),如果JScript1.js中需要调用大量的common.js中的方法,这时候在JScript1.js中智能提 ...

  3. intelliJ IDEA安装、激活与汉化

    1.去intelliJ IDEA 官网下载idea,选择Ultimate版本(非免费版,community免费但功能较少) 2.开始安装 3.选择好路径 4.选择在桌面创建的快捷方式(注意32bit和 ...

  4. 深入理解Java虚拟机--上

    深入理解Java虚拟机--上 第2章 Java内存区域和内存溢出异常 2.2 运行时数据区域 图 2-1 Java虚拟机运行时数据区 2.2.1 程序计数器 程序计数器可以看作是当前线程所执行的字节码 ...

  5. Ubuntu on win10

    大家看到这个题目应该都知道这个东西吧,或许也都知道咋安装啥的,我只是想分享一下自己安装它的过程同时可以对那些有需要的人给予帮助!!! 1. 打开开发者模式(如下图) 像上面这样打开开发人员模式,过程会 ...

  6. 深度揭秘ES6代理Proxy

    最近在博客上看到关于ES6代理的文章都是一些关于如何使用Proxy的例子,很少有说明Proxy原理的文章,要知道只有真正掌握了一项技术的原理,才能够写出精妙绝伦的代码,所以我觉得有必要写一篇关于深刻揭 ...

  7. python如何将指定路径下的某类型文件,返回一个树形结构体,让前端显示为树形的目录结构

    最近遇到一个问题就是某个linux的目录下有各种文件现在的要求是只需要返回.kml格式的文件,并根据前端要求返回如下结构体即:[{'children': [{'children': [{'title' ...

  8. 0_Simple__simpleAtomicIntrinsics + 0_Simple__simpleAtomicIntrinsics_nvrtc

    原子操作.并且在静态代码和运行时编译两种条件下使用. ▶ 源代码:静态使用 #ifndef _SIMPLEATOMICS_KERNEL_H_ #define _SIMPLEATOMICS_KERNEL ...

  9. PTA 循环单链表区间删除 (15 分)

    本题要求实现带头结点的循环单链表的创建和单链表的区间删除.L是一个带头结点的循环单链表,函数ListCreate_CL用于创建一个循环单链表,函数ListDelete_CL用于删除取值大于min小于m ...

  10. Deploy .Net project automatically with MsBuild and MsDeploy (0)

    I will use a example of my project to show how to use MS Build and MS Deploy in a real project and s ...