题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

题意整理。

  • 输入n个字符串。
  • 对这n个字符串进行字典序排列,并输出。

方法一(调用sort)

1.解题思路

  • 新建字符串数组,存储所有输入的字符串。
  • 调用Arrays的sort方法对字符串数组进行排序,然后遍历字符串数组,输出所有的字符串。

图解展示: alt

2.代码实现

import java.util.Arrays;
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        //输入正整数n
        int n=sc.nextInt();
        //用于存储输入的字符串
        String[] str=new String[n];
        for(int i=0;i<n;i++){
            str[i]=sc.next();
        }
        //按字典序排列
        Arrays.sort(str);
        //输出所有字符串
        for(String s:str){
            System.out.println(s);
        }
    }
}

3.复杂度分析

  • 时间复杂度:输入的字符串个数不超过1000,对应要处理的字符串为常数级别,所以时间复杂度为O(1)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)

方法二(io流)

1.解题思路

思路和方法一相同,不过使用io流的方式来处理输入。

2.代码实现

import java.io.*;
import java.util.Arrays;

public class Main{
    public static void main(String[] args){
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        try{
            //输入正整数n
            int n=Integer.parseInt(br.readLine());
            //用于存储输入的字符串
            String[] str=new String[n];
            for(int i=0;i<n;i++){
                str[i]=br.readLine();
            }
            //按字典序排列
            Arrays.sort(str);
            //输出所有字符串
            for(String s:str){
                System.out.println(s);
            }
        }
        catch(IOException e){
            
        }
        
    }
}

3.复杂度分析

  • 时间复杂度:输入的字符串个数不超过1000,对应要处理的字符串为常数级别,所以时间复杂度为O(1)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论
哥们,你到底会不会分析时间复杂度和空间复杂度,不会的话别乱写误导别人啊
点赞 回复 分享
发布于 2022-08-13 23:33
时间复杂度和空间复杂度本来就是一个相对的概念,如果一个算法里要遍历一个大小为n的数组100次,你会说时间复杂度是O(100*n)吗?至于这个题目,数据范围比较小,当然可以看作常熟级别时间、空间复杂度。如果非要分析,也可以把10大排序算法拿出来一个个分析,或者剖析sort接口的底层实现,什么时候插入排序、什么时候使用快排、什么时候使用归并。这些东西完全看个人兴趣自己去了解了。
点赞 回复 分享
发布于 2022-08-14 10:11

相关推荐

不愿透露姓名的神秘牛友
昨天 19:05
点赞 评论 收藏
分享
gcniz:一天写两千行你闹呢
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务