关于时间复杂度的问题,两个程序为什么复杂度不同,各位好心人求回答

第一个程序
public class Main{
public char getString(String s){
int num=0;
for(int i=0;i<s.length();i++){
for(int j=0;j<s.length();j++){
if(s.charAt(i)==s.charAt(j)){
num++;
}

}
if(num==1){
return s.charAt(i);
}else{
num=0;
}
}
return 0;
}
public static void main(String[] args) throws IOException{
Main main=new Main();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=null;
while((s=br.readLine())!=null){
System.out.println(main.getString(s));
}

}

}
第二个程序
import java.util.Scanner;

public class Main {

public static void main(String[] args){
    Scanner in = new Scanner(System.in);
    int array=in.nextInt();//得到数据组数
    for(int i=0;i<array;i++){//取出每一个字符串判断
        String str=in.next();
        char[] ch=str.toCharArray();
        System.out.println(getFirstChar(ch));  
    }     
}
//统计字符数组中只出现一次字符的数组
public static char getFirstChar(char[] ch){
    char goal;
    for(int i=0;i<ch.length;i++){
        int k=0;
        goal=ch[i];
        for(int j=0;j<ch.length;j++){
            if(goal==ch[j]){
                k++;
            }
            if(k>1){
                break;
            }
        }
        if(k==1){
            return goal;
        }

    }
    return '0'; 
}

}
这两个算法在MyEclipse中都可以执行,但是第一个在牛客网上却执行不了,说时间复杂度太大,我想问一下这两个都是两个for循环加判断,咋么第一个复杂度大于第二个呢,各位帮帮忙!

第二个有break,所以速度快

第二个有判断k的值啊,一个大于1结束,一个等于1结束,所以时间复杂度很小

时间复杂度是一个理论值。时间运行时间要看你结束条件