你好,我知道如何为一维数组实现简单的冒泡排序。但是对于二维或多维,这就是我的问题所在。
到目前为止,我一直在使用它对一维数组进行排序,就像一个魅力。但主要是整数,而不是字符串:
boolean sort;
do{
sort = true;
for (int i = 0; i < testarray.length - 1; i++){
if(testarray[i] > testarray[i+1]){
temp = testarray[i];
testarray[i] = testarray[i+1];
testarray[i+1] = temp;
sort = false;
}
}
}while(!sort);
// Descending Output
// for (int k = testarray.length - 1; k >= 0 ; k--){
// Ascending Output
for (int k = 0; k < testarray.length ; k++){
System.out.print(testarray[k] + ", ");
}
假设我有:
客户编号、姓名、姓氏、地址
String customers[][] = {{"123", "John", "Doe", "Somewhere"}, {"007", "James", "Bond", "MI5"}, {"1337", "Lolcat", "Izgud", "Saturn"}}
现在,我想选择对要排序的内容进行排序:客户编号、姓名、姓氏或地址。之后我想输出它升序或降序,这取决于我想要什么。
我只是不知道如何用冒泡排序来实现这一点。我想留在冒泡排序中,没有其他排序算法,我想了解冒泡排序在这种情况下是如何工作的。
对于上升和下降,我的想法是:我可以做一个 if-Loop。例如if (asc == 1) then output ascending, else output descending
. 例如,然后将通过控制台询问 asc。
任何帮助深表感谢。