热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

跨列排序2D数组的Java程序

跨列排序2D数组的Java程序原文:https://ww

跨列排序 2D 数组的 Java 程序

原文:https://www . geesforgeks . org/Java-程序-排序-2d-数组-跨列/

向量类实现了一个可增长的对象数组。向量基本上属于遗留类,但现在它与集合完全兼容。在java.util 包中找到,实现了 List 接口,所以我们可以在这里使用 List 接口的所有方法。该程序用于对跨列的 2D 数组进行排序。我们将使用向量的概念来对每一列进行排序。

算法:


  1. Traverse each column one by one.

  2. Add the element of column 1 to vector v.

  3. Sort the vectors.

  4. Push the sorted elements back from the vector to the column.

  5. Clear the vector by removing all elements for fresh sorting.

  6. Repeat the above steps until all columns are completed.

图示:创建矢量

这里我们创建一个初始容量为 10 的默认向量,语法如下:

Vector<E> v = new Vector<E>();

将用于实现目标的功能如下:

a .remove all():Java . util . vector . remove all(Collection col)方法用于从向量中移除指定集合中存在的所有元素。

语法:

Vector.removeAll(Vector)

b .T2【collections . sort()T4:这个方法是用来对向量进行排序的。

语法:

Collections.sort(Vector)

C. add(): 这个方法是用来在向量中添加元素的。

语法:

Vector.add(value)

D. get(): 该方法将获取 Vector 中存储在特定索引处的元素

语法:

Vector.get(3);

示例

Java


// Java Program to Sort 2D array across Columns
// Importing required classes
import java.io.*;
import java.lang.*;
import java.util.*;
// Main class
class GFG {
    // Main driver method
    public static void main(String[] args)
        throws java.lang.Exception
    {
        // Custom input for 2D array
        int[][] arr = { { 7, 2, 0, 5, 1 },
                        { 3, 8, 2, 9, 14 },
                        { 5, 1, 0, 5, 2 },
                        { 4, 2, 6, 0, 1 } };
        // Display message for better readability
        System.out.println("Matrix without sorting \n");
        // Nested iteration to display matrix
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 5; j++) {
                // Printing elements of 2D matrix
                System.out.print(arr[i][j] + " ");
            }
            // New line as we are done with row
            System.out.println();
        }
        // Creating an object of Vector class
        Vector<Integer> v = new Vector<>();
        // Nested iteration using for loops
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 4; j++) {
                // Adding elements of columns in vector
                // using add() method
                v.add(arr[j][i]);
            }
            // Sorting elements in vector
            // using sort() method
            Collections.sort(v);
            for (int j = 0; j < 4; j++) {
                // Sorted elements are pushed back
                // from vector to column
                arr[j][i] = v.get(j);
            }
            // Elements are removed from vector for
            // fresh sorting using remove() method
            v.removeAll(v);
        }
        // Printing matrix after sorting
        System.out.println("Matrix after sorting \n");
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}

输出

Matrix without sorting
7 2 0 5 1
3 8 2 9 14
5 1 0 5 2
4 2 6 0 1
Matrix after sorting
3 1 0 0 1
4 2 0 5 1
5 2 2 5 2
7 8 6 9 14


推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 学习Java异常处理之throws之抛出并捕获异常(9)
    任务描述本关任务:在main方法之外创建任意一个方法接收给定的两个字符串,把第二个字符串的长度减1生成一个整数值,输出第一个字符串长度是 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 本文介绍了Codeforces Round #321 (Div. 2)比赛中的问题Kefa and Dishes,通过状压和spfa算法解决了这个问题。给定一个有向图,求在不超过m步的情况下,能获得的最大权值和。点不能重复走。文章详细介绍了问题的题意、解题思路和代码实现。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有