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?