用冒泡排序比较字符串字典序…复杂度很高

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		sc.nextLine();
		String[] arr = new String[num];
		for(int i=0;i<num;i++){
			arr[i] = sc.nextLine();
		}
		String tmp;
		for(int i=num-1;i>=1;i--){			
			for(int j=0;j<i;j++){
				if(strBe(arr[j],arr[j+1])){
					tmp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = tmp;
				}
			}
		}
		for(int i=0;i<num;i++){
			System.out.println(arr[i]);
		}
	}
	public static boolean strBe(String str1,String str2){
		char[] a = str1.toCharArray();
		char[] b = str2.toCharArray();
		int len = Math.min(a.length, b.length);
		for(int i=0;i<len;i++){
			if(a[i]==b[i])continue;
			else if(a[i]<b[i])return false;
			else return true;
		}
		if(len < b.length){
			return false;
		}
		return true;
	}
}