java - Java - BubbleSort - 有没有办法让我多次输入相同的输入?
问题描述
我正在尝试使用 BubbleSort 按价值对卡片进行排序,但是在使用同一张卡片或具有相似价值的卡片时遇到了一些问题。
import java.util.HashMap;
public class KartenSort {
private int zwei = 2;
private int drei = 3;
private int vier = 4;
private int fuenf = 5;
private int sechs = 6;
private int sieben = 7;
private int acht = 8;
private int neun = 9;
private int zehn = 10;
private int koenig = 10;
private int dame = 10;
private int bube = 10;
private int ass = 11;
public int[] liste ={drei,zwei,fuenf,vier,koenig,sieben,ass};
public int[] sortieren(){
int unsortiert;
for(int sortiert = 0; sortiert < liste.length -1; sortiert++){
if(liste[sortiert] <= liste[sortiert+1]){
continue;
}
unsortiert = liste[sortiert];
liste[sortiert] = liste[sortiert+1];
liste[sortiert+1] = unsortiert;
sortieren();
}
return liste;
}
public static void main (String[] args){
HashMap<Integer,String> numbers = new HashMap<>();
numbers.put(2, "zwei");
numbers.put(3, "drei");
numbers.put(4, "vier");
numbers.put(5, "fuenf");
numbers.put(6, "sechs");
numbers.put(7, "sieben");
numbers.put(8, "acht");
numbers.put(9, "neun");
numbers.put(10, "zehn");
numbers.put(10, "koenig");
numbers.put(10, "dame");
numbers.put(10, "bube");
numbers.put(11, "ass");
KartenSort bs = new KartenSort();
int[] array = bs.sortieren();
for (int sortiert=0;sortiert < array.length; sortiert++){
System.out.println(numbers.get(array[sortiert]));
}
}
}
而不是打印出“koenig”、“dame”等……所有值为 10 的卡片都将显示为“bube”。有没有办法映射它们?
解决方案
此声明:-
if(liste[sortiert] < liste[sortiert+1]){
continue;
}
当两个操作数的值相同时,它将被评估为false
. 结束递归sortieren()
调用而不增加数组索引。更改为<=
运算符以使continue
语句起作用。例如:-
if(liste[sortiert] <= liste[sortiert+1]){
continue;
}
推荐阅读
- angular - 对象对象不是 PostCSS 插件 - 构建 nrwl 库项目时出错
- java - 在 Netbeans 上的 Glassfish 处理 derby 数据库时遇到 ClassNotFoundException
- jbpm - 如何将本地项目导入 JBPM 业务中心而不是使用 GIT
- fortran - 为什么 MPI_REDUCE 在编译时返回语法错误?
- php - 如何使用while循环php解决这个问题
- nestjs - ExceptionHandler 在nest.js 中找不到“配置文件”的元数据
- shell - 列出子目录并在 shell 脚本中使用 select 和 case
- android - 如何读取包含空格的文件路径?
- excel - Excel问题,有点像复利,但不是
- python - 将 JSON 文件拆分为两个不同的 XML 文件