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

【PTA】英文单词排序

个人名片:博主:酒徒ᝰ.个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。专栏:PTA习题及解

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


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


请添加图片描述


目录

  • 前言
    • 1.简介
    • 2.优点
  • 一、题目
  • 二、代码
  • 三、笔记


前言


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 &#61; new Scanner(System.in);String num;ArrayList<String> list &#61; new ArrayList<>();int n &#61; 0;while (true){num &#61; sc.next();if (!num.equals("#")){list.add(num);}else {break;}n&#43;&#43;;}String[] str &#61; new String[list.size()];for (int i &#61; 0; i < str.length; i&#43;&#43;) {str[i] &#61; list.get(i);}for (int i &#61; 0; i < list.size()-1; i&#43;&#43;) {for (int j &#61; i &#43; 1; j < list.size(); j&#43;&#43;) {if (str[i].length() > str[j].length()){num &#61; str[i];str[i] &#61; str[j];str[j] &#61; num;}}}for (int i &#61; 0; i < str.length; i&#43;&#43;) {System.out.print(str[i] &#43; " ");}}
}

三、笔记

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


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

推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
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社区 版权所有