【PTA】 逐行排序

请添加图片描述
个人名片:

博主酒徒ᝰ.
个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。
专栏PTA习题及解析
介绍记录了博主在pta学习练题

请添加图片描述

前言

1.简介

“PTA程序设计类实验辅助教学平台”是由浙江大学主导,杭州百腾教育科技有限公司管理运营,全国高校教师共同建设的程序设计类课程的辅助教学平台。目前,全国538所高校参与,3152位教师共同建设出66095道高质量题目,学生注册用户已达136万;共有14类固定题目集(涵盖C语言、JAVA语言、Python语言、数据结构、数据库系统和中国高校计算机大赛题库等方面)和55类专业课程题目集(涵盖计算机类、电子类、文学类、外语类及华为认证)。包含判断题、填空题、单选题、多选题、程序填空题、函数题、编程题、主观题、多文件编程题和SQL编程题10种题目类型。

2.优点

  • 支持20万人同时在线
  • 支持多种题型
  • 支持多种判题模式
  • 为教学质量提供全方位保障
  • 即时的答疑系统

一、题目

给你一个n阶方阵,请你把每行数据按数据从小到大排序并输出。

输入格式:
输入数据首先包含一个整数T,表示测试实例的个数,然后是T组测试数据。
每组测试数据的第一行输入1个整数n(1<n<20),接下来输入n行数据,每行n个整数。

输出格式:
对于每组测试,输出排好序后的结果。每行中各数据之间留一个空格。

输入样例:

2
3
4 9 2
3 5 7
8 1 6
2
3 5
1 2

输出样例:

2 4 9
3 5 7
1 6 8
3 5
1 2

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

二、代码

import java.util.Scanner;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        int sum;
        for (int i = 0; i < T; i++) {
    
    
            int n = sc.nextInt();
            int[][] num = new int[n][n];
            for (int j = 0; j < n; j++) {
    
    
                for (int k = 0; k < n; k++) {
    
    
                    num[j][k] = sc.nextInt();
                }
                for (int k = 0; k < n-1; k++) {
    
    
                    for (int l = k+1; l < n; l++) {
    
    
                        if (num[j][k] > num[j][l]){
    
    
                            sum = num[j][k];
                            num[j][k] = num[j][l];
                            num[j][l] = sum;
                        }
                    }
                }
                for (int k = 0; k < n; k++) {
    
    
                    if (k != n-1){
    
    
                        System.out.print(num[j][k] + " ");
                    }else {
    
    
                        System.out.println(num[j][k]);
                    }
                }
            }
        }
    }
}

三、笔记

常见的三种排序方法:冒泡排序、插入排序、选择排序 。

  1. 冒泡排序
    比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    针对所有的元素重复以上的步骤,除了最后一个。
    持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
  2. 插入排序
    插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序
  3. 选择排序
    选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换

猜你喜欢

转载自blog.csdn.net/m0_65144570/article/details/127098741
PTA