【PTA】英文单词排序

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

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

请添加图片描述

前言

1.简介

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

2.优点

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

一、题目

本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。

输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。

输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。

输入样例:

blue
red
yellow
green
purple
#

输出样例:

red blue green yellow purple

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

二、代码

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        String num;
        ArrayList<String> list = new ArrayList<>();
        int n = 0;
        while (true){
    
    
            num = sc.next();
            if (!num.equals("#")){
    
    
                list.add(num);
            }else {
    
    
                break;
            }
            n++;
        }
        String[] str = new String[list.size()];
        for (int i = 0; i < str.length; i++) {
    
    
            str[i] = list.get(i);
        }
        for (int i = 0; i < list.size()-1; i++) {
    
    
            for (int j = i + 1; j < list.size(); j++) {
    
    
                if (str[i].length() > str[j].length()){
    
    
                    num = str[i];
                    str[i] = str[j];
                    str[j] = num;
                }
            }
        }
        for (int i = 0; i < str.length; i++) {
    
    
            System.out.print(str[i] + " ");
        }
    }
}

三、笔记

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

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

猜你喜欢

转载自blog.csdn.net/m0_65144570/article/details/127098680