英文:
How to apply Selection method to sort in alphabetical order?
问题
Estudiante[] aux = new Estudiante[1];
int contador = 0;
int contador2 = 1;
for (int i = 1; i < arregloEstudiante.length - 1; i++) {
String minimo = arregloEstudiante[contador].getCarnet();
int menor = i;
for (int j = i + 1; j < arregloEstudiante.length; j++) {
String maximo = arregloEstudiante[contador2].getCarnet();
if (minimo.compareTo(maximo) < 0) {
menor = j;
}
if (menor == j) {
aux[0] = arregloEstudiante[i];
arregloEstudiante[i] = arregloEstudiante[menor];
arregloEstudiante[menor] = aux[0];
}
}
contador++;
contador2++;
}
return arregloEstudiante;
// Array to be sorted:
// C54411
// B92542
// A95720
// A22523
// B4562
// B32567
// B42667
// C72588
// C42214
// C34767
// Class definition:
class Estudiante {
private String carnet;
private String nombre;
private String apellidos;
private int notaAdmision;
public Estudiante() {
}
public Estudiante(String carnet, String nombre, String apellidos, int notaAdmision) {
this.carnet = carnet;
this.nombre = nombre;
this.apellidos = apellidos;
this.notaAdmision = notaAdmision;
}
public String getCarnet() {
return this.carnet;
}
public String getNombre() {
return this.nombre;
}
public String getApellidos() {
return this.apellidos;
}
public int getNotaAdmision() {
return this.notaAdmision;
}
public void setCarnet(String carnet) {
this.carnet = carnet;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public void setNotaAdmision(int notaAdmision) {
this.notaAdmision = notaAdmision;
}
}
The provided code appears to be a sorting algorithm using the selection sort method to sort an array of Estudiante
objects based on their "carnet" attribute in ascending order. The Estudiante
class defines the structure of the objects being sorted.
英文:
Estudiante[] aux = new Estudiante[1];
int contador = 0;
int contador2 = 1;
for (int i = 1; i < arregloEstudiante.length - 1; i++) {
String minimo = arregloEstudiante[contador].getCarnet();
int menor = i;
for (int j = i + 1; j < arregloEstudiante.length; j++) {
String maximo = arregloEstudiante[contador2].getCarnet();
if (minimo.compareTo(maximo) < 0) {
menor = j;
}
if (menor == j) {
aux[0] = arregloEstudiante[i];
arregloEstudiante[i] = arregloEstudiante[menor];
arregloEstudiante[menor] = aux[0];
}
}
contador++;
contador2++;
}
return arregloEstudiante;
This is the my closest result.
C54411
B92542
A95720
A22523
B4562
B32567
B42667
C72588
C42214
C34767
We have to use Selection method. using this array
arregloEstudiante[0] = new Estudiante("C54411", "Maria", "Mora Mora", 700);
arregloEstudiante[1] = new Estudiante("B92542", "Jose", "Solano Solano", 444);
arregloEstudiante[2] = new Estudiante("C42214", "Alonso", "Solano Mora", 800);
arregloEstudiante[3] = new Estudiante("A95720", "Miguel", "Mora Solano", 550);
arregloEstudiante[4] = new Estudiante("B32567", "Andrea", "Jimenez Ureña", 625);
arregloEstudiante[5] = new Estudiante("C34767", "Fabian", "Sanchez Alvarado", 740);
arregloEstudiante[6] = new Estudiante("C72588", "Martin", "Moya Ureña", 592);
arregloEstudiante[7] = new Estudiante("B42667", "Fabiana", "Sanchez Alvarado", 689);
arregloEstudiante[8] = new Estudiante("A22523", "Mariano", "Mora Mora", 750);
arregloEstudiante[9] = new Estudiante("B4562", "Alonso", "Solano Morales", 497);
only using the first attribute, I save them in temp, "minimo" and "maximo"`
This is the my closest result.
C54411
B92542
A95720
A22523
B4562
B32567
B42667
C72588
C42214
C34767
I have to use Selection order methods. Using this array, I have to make an alphabetical order, with the first attribute, I save them in temp "minimo" and "maximo".
I use this class.
public class Estudiante {
private String carnet;
private String nombre;
private String apellidos;
private int notaAdmision;
public Estudiante() {
}
public Estudiante(String carnet, String nombre, String apellidos, int notaAdmision) {
this.carnet = carnet;
this.nombre = nombre;
this.apellidos = apellidos;
this.notaAdmision = notaAdmision;
}
public String getCarnet() {
return this.carnet;
}
public String getNombre() {
return this.nombre;
}
public String getApellidos() {
return this.apellidos;
}
public int getNotaAdmision() {
return this.notaAdmision;
}
public void setCarnet(String carnet) {
this.carnet = carnet;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public void setNotaAdmision(int notaAdmision) {
this.notaAdmision = notaAdmision;
}
This is my class I think everything is ok.
I have to use the selection order method.
If someone finds a solution please tell me.
Compiles with JAVA 1.8
答案1
得分: 0
你正在使用选择排序来根据carnet
属性对Estudiante
数组进行排序。
我从这个网页上复制了代码,并进行了修改以适应您的需求。
import java.util.Arrays;
public class Estudiante {
// ...(与原始代码相同的属性和方法)
public static void sortAscending(final Estudiante[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minElementIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[minElementIndex].getCarnet().compareTo(arr[j].getCarnet()) > 0) {
minElementIndex = j;
}
}
if (minElementIndex != i) {
Estudiante temp = arr[i];
arr[i] = arr[minElementIndex];
arr[minElementIndex] = temp;
}
}
}
public static void main(String[] args) {
// ...(与原始代码相同的main方法)
}
}
- 我添加的唯一方法是
sortAscending()
。 - 代码的最后几行只是简单地打印出已排序的数组。它们不影响实际的排序操作。您可以使用任何方法来打印已排序的数组,如果需要打印的话。
下面是我在运行上述代码时得到的输出结果。
A22523
A95720
B32567
B42667
B4562
B92542
C34767
C42214
C54411
C72588
英文:
You are using selection sort to sort the array of Estudiante
according to the carnet
attribute.
I copied the code from this Web page and modified it to suit your needs.
import java.util.Arrays;
public class Estudiante {
private String carnet;
private String nombre;
private String apellidos;
private int notaAdmision;
public Estudiante(String carnet, String nombre, String apellidos, int notaAdmision) {
this.carnet = carnet;
this.nombre = nombre;
this.apellidos = apellidos;
this.notaAdmision = notaAdmision;
}
public String getCarnet() {
return this.carnet;
}
public String getNombre() {
return this.nombre;
}
public String getApellidos() {
return this.apellidos;
}
public int getNotaAdmision() {
return this.notaAdmision;
}
public void setCarnet(String carnet) {
this.carnet = carnet;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public void setNotaAdmision(int notaAdmision) {
this.notaAdmision = notaAdmision;
}
public static void sortAscending(final Estudiante[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minElementIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[minElementIndex].getCarnet().compareTo(arr[j].getCarnet()) > 0) {
minElementIndex = j;
}
}
if (minElementIndex != i) {
Estudiante temp = arr[i];
arr[i] = arr[minElementIndex];
arr[minElementIndex] = temp;
}
}
}
public static void main(String[] args) {
Estudiante[] arregloEstudiante = new Estudiante[10];
arregloEstudiante[0] = new Estudiante("C54411", "Maria", "Mora Mora", 700);
arregloEstudiante[1] = new Estudiante("B92542", "Jose", "Solano Solano", 444);
arregloEstudiante[2] = new Estudiante("C42214", "Alonso", "Solano Mora", 800);
arregloEstudiante[3] = new Estudiante("A95720", "Miguel", "Mora Solano", 550);
arregloEstudiante[4] = new Estudiante("B32567", "Andrea", "Jimenez Ureña", 625);
arregloEstudiante[5] = new Estudiante("C34767", "Fabian", "Sanchez Alvarado", 740);
arregloEstudiante[6] = new Estudiante("C72588", "Martin", "Moya Ureña", 592);
arregloEstudiante[7] = new Estudiante("B42667", "Fabiana", "Sanchez Alvarado", 689);
arregloEstudiante[8] = new Estudiante("A22523", "Mariano", "Mora Mora", 750);
arregloEstudiante[9] = new Estudiante("B4562", "Alonso", "Solano Morales", 497);
sortAscending(arregloEstudiante);
Arrays.stream(arregloEstudiante)
.forEach(e -> System.out.println(e.getCarnet()));
}
}
- The only method I added was
sortAscending()
. - The last lines of the code simply print out the sorted array. They do not affect the actual sort operation. You can use any method you like to print out the sorted array – if you need to print it out at all.
Below is the output I get when running the above code.
A22523
A95720
B32567
B42667
B4562
B92542
C34767
C42214
C54411
C72588
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论