Fazer um programa que faça a ordenação de listas conforme: - Ordenação por Seleção - Ordenação por Inserção - HeapSort - MergeSort

Fazer um programa que faça a ordenação de listas conforme:

  • Ordenação por Seleção
  • Ordenação por Inserção
  • HeapSort
  • MergeSort
    Seu programa deverá dar a opção ao usuário de qual tipo de ordenação sera feito.
    Toda ordenacão, quando possevel deverá ser estável e in-place.
    Seu programa deverá ser capaz de ordenar por inteiro e por ordem alfabética.
    Seu programa receberá uma matriz de pares em arquivo texto. Elementos desta
    matriz serão separados por uma nova linha () e elementos dos pares por uma
    vírgula. Assim se os pares forem pares de inteiros o arquivo de entrada sera:
    1, 2
    3, 4
    5, 6 …
    Os elementos dos pares podem ser inteiros ou palavras.
    O seu programa deve dar a opção de ordenação pelo primeiro elemento do par, pelo
    segundo ou pelos dois.
    O que entregar:
    Programa Fonte
    Programa executável
    Instruções

primeiro problema surgiu quando eu fui instanciar o objt e chamar um metodo de outra classe

Não existe um metodo chamado “sortSelection()” na sua classe “Ordenação”. Você está tentando invocar este metodo a partir de uma instancia da Classe “Ordenação”, por isso o erro. Cara, não se coloca “ç” em nome de classe. Poste o código da classe “sortSelection”.

Poste o código, não imagens.

package ordenacao;

import java.util.Scanner;

public class Ordenacao {

public static void main(String[] args) {
    
    int quantidade = 20; //define tamanho do vetor
    int escolha = 0;
    int i = 0;
    int[] vetor = new int[quantidade]; //cria o vetor com N quantidade de posições de 1 até n
    for( i = 0; i < vetor.length; i++) {
        int rnd = (int) (1 + Math.random() * quantidade);
        vetor[i] = rnd; 
    }
    System.out.println("selecione o tipo de oredenação:");
    System.out.println("ordenação por seleção;");
    System.out.println("ordenação por inserção;");
    System.out.println("heapsort;");
    System.out.println("margesort;");
    Scanner scan = new Scanner (System.in);
    escolha = scan.nextInt(); 
    
    Ordenacao ordenacao = new Ordenacao();
    if (escolha ==1){
        ordenacao.sortSelection(vetor);
    }
}

}

package ordenacao;

public class sortSelection {
public void sortSelection(int vetor[]){
int menor, indiceMenor;
int i=0;
for ( i = 0; i < vetor.length - 1; i++) {
// antes de comparar, considera-se menor o valor atual do loop
menor = vetor[i];
indiceMenor = i;

          // compara com os outros valores do vetor
          for (int j = i + 1; j < vetor.length; j++){
              if (vetor[j] < menor){
                  menor = vetor[j];
                  indiceMenor = j;
              }
          }

          // troca os valores menor e maior
          vetor[indiceMenor] = vetor[i];
          vetor[i] = menor;
        }

}
}

Não cheguei a testar o seu algoritimo de ordenação mas agora o código vai pelo menos compilar. Testa ai e me diz o resultado.

package ordenacao;

public class SortSelection 
{
	public void sortSelection(int vetor[])
	{
		int menor, indiceMenor;
		int i=0;
		for ( i = 0; i < vetor.length - 1; i++)
		 {
			// antes de comparar, considera-se menor o valor atual do loop
			menor = vetor[i];
			indiceMenor = i;

		        // compara com os outros valores do vetor
		        for (int j = i + 1; j < vetor.length; j++)
			{
		              if (vetor[j] < menor)
				{
                  			menor = vetor[j];
                  			indiceMenor = j;
  	            		}
  	        	}

          	// troca os valores menor e maior
         	 vetor[indiceMenor] = vetor[i];
          	vetor[i] = menor;
        	}
	}
}
package ordenacao;

import java.util.Scanner;

public class Ordenacao
{

	public static void main(String[] args)
	{
    
    	    int quantidade = 20; //define tamanho do vetor
	    int escolha = 0;
	    int i = 0;
	    int[] vetor = new int[quantidade]; //cria o vetor com N quantidade de posições de 1 até n

	    for( i = 0; i < vetor.length; i++)
	    {
        	int rnd = (int) (1 + Math.random() * quantidade);
        	vetor[i] = rnd; 
    	    }

       System.out.println("selecione o tipo de oredenação:");
       System.out.println("ordenação por seleção;");
       System.out.println("ordenação por inserção;");
       System.out.println("heapsort;");
       System.out.println("margesort;");
       Scanner scan = new Scanner (System.in);
       escolha = scan.nextInt(); 
    
       SortSelection ordenacao = new SortSelection();
    
      if (escolha ==1)
      {
        ordenacao.sortSelection(vetor);
      }
   }
}

alguem sabe pq ta dando esse erro?

Que erro jovem?

deu bomfwd.zip (95,7 KB)