Rank de equipes

Galera eu fiquei com o código todo parado em um exercício, de pegar os pontos calculados de varias equipes, e imprimir o rank delas crescente. Por favor alguém me ajuda !
O exercício =
"A aplicação deve seguir os seguintes requisitos:

  1. O programa deve solicitar a quantidade de equipes que participarão da competição e deverá armazenar o nome de cada equipe.
  2. O programa deve solicitar a quantidade de disputas que cada equipe participou. Em seguida, para cada equipe, deverá ser armazenado V (vitória) ou E (empate) ou D (derrota) para cada disputa realizada pela equipe.
  3. O programa também deve solicitar a nota entre 0 e 10 que cada equipe teve para o design do robô.
  4. Após a entrada de todos os dados o sistema deverá gerar uma lista de classificação ordenada pela pontuação. Para a classificação das equipes deve-se considerar que cada vitória equivale a 5 pontos, cada empate equivale a 3 pontos e cada derrota equivale a 0 pontos. Observação: caso haja empates entre as equipes será utilizada a nota de design para definir o desempate, ou seja, a equipe com a maior nota de design terá vantagem na classificação (apenas se houver empates)."

Posta aí o que você já fez

public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int qtdEquip, maior = 0;

		// Entrada de Equipes
		System.out.println();
		System.out.println("---Ranking Robocup 1SIA---");
		System.out.println();
		System.out.print("Quantas equipes Participaram ? = ");
		qtdEquip = entrada.nextInt();
		
		// Array
		int[] rank = new int[qtdEquip - 1];
		int[][] tabela = new int[qtdEquip][5];
		String[] nome = new String[qtdEquip];
		String[] pepepe = {"vitoria", "Derrotas", "Empates"};
		
		//Entrada de Informaçoes 
		
		for(int linha = 0; linha < qtdEquip; linha++) {
		int partidas = 0, aux = 0;
			System.out.println("Equipe " + (linha+1));
			System.out.print("Nome = ");
			nome[linha] = entrada.next();
			System.out.print("Quantas Partidas Participou = ");
			partidas = entrada.nextInt();
			
			for(int coluna = 0; coluna <= 1; coluna++) {
				System.out.print("Numero de " + pepepe[coluna] + " =");
				tabela[linha][coluna] = entrada.nextInt();	
			}
			System.out.print("Numero de Empates= ");
			tabela[linha][2]= entrada.nextInt();
			System.out.print("Nota do Trabalho= ");
			tabela[linha][3] = entrada.nextInt();
			aux = tabela[linha][0] + tabela[linha][1] + tabela[linha][2];
			if(aux == partidas) {
				// calculo dos pontos
				tabela[linha][4] = (tabela[linha][0] * 5) +(tabela[linha][1] * 0) +(tabela[linha][2] * 3);
				if(tabela[linha][4] > maior) {
					maior = tabela[linha][4];
				}
				System.out.println("Pontos ="+ tabela[linha][4]);
				System.out.println();

			}else {
				System.out.println("O numerro de Vitorias ou Derrotas, é maior que a quantidade de partidas");
				System.out.println("Reinicie o codigo");
				return;
			}				
		}
		for(int linha = 0; linha <= qtdEquip; linha++) {
			int k =1 ;
				if(tabela[linha][4] == maior) {
					rank[0] = linha;
					k++;
				}else {
					rank[k] = linha;
					k++;
				}
			}
		System.out.println("Ate aqui blz");
		for (int c = 1; c < qtdEquip; c++) {
			int h = 0;
			System.out.println("outro");
			for(int a = 2; a < qtdEquip; a++) {
				System.out.println("vei");
				if(rank[c] < rank[a]) {
					System.out.println(a-1); 
					h = rank[c];
					rank[c] = rank[a];
					rank[a] = h;
				}else
				{
					System.out.println("Else");
				a = qtdEquip;
				}
			}
		}
		//tabela
			System.out.print(String.format("%-15s", " "));
			System.out.println("---Ranking Robocup 1SIA---");
			System.out.print(String.format("%-15s", "Equipes"));
			System.out.print(String.format("%-15s", "Vitorias"));
			System.out.print(String.format("%-15s", "Derrotas"));
			System.out.print(String.format("%-15s", "Empates"));
			System.out.print(String.format("%-15s", "Nota"));
			System.out.println(String.format("%-15s", "Pontos"));
		
			
			
			for(int n = 0; n < qtdEquip; n++) {
			System.out.print(String.format("%-15s",(n+1)+"# " + nome[rank[n]]));
			System.out.print(String.format("%-15s",tabela[rank[n]][0]));
			System.out.print(String.format("%-15s",tabela[rank[n]][1]));
			System.out.print(String.format("%-15s",tabela[rank[n]][2]));
			System.out.print(String.format("%-15s",tabela[rank[n]][3]));
			System.out.print(String.format("%-15s",tabela[rank[n]][4]));
			System.out.println();
			
			}
		}
}