按出现频率高低输出字母,给出字典序列
使用一个数组num存储每个字母出现的次数,随后遍历26次num数组,每次寻找当前数组中最大数,根据数组下标key得到字母,根据num[key]的值得到原串中出现的次数,结果存入res字符串。每次结束后,将num[key]置零
T(n)=O(n)+O(26*O(26))=O(n)+O(1)=O(n)
申请了一个res存放结果,一个长为定值的数组,两个长为定值的字符串。
S(n)=O(n)+3*S(26)=O(n)
import java.util.Scanner;
public class tongjipaixu {
public static void main(String[] arg)
{
Scanner input = new Scanner(System.in);
String str=input.nextLine();
while(!str.equals("")) {
String res = tongjipaixu(str);
System.out.println(res);
str=input.nextLine();
}
}
static String tongjipaixu(String str)
{
String res="";
String zimu ="abcdefghijklmnopqrstuvwxyz";