【发布时间】:2010-12-23 18:06:36
【问题描述】:
您好,我知道如何为一维数组实现简单的冒泡排序。但是对于二维或多维,这就是我的问题所在。
到目前为止,我一直在使用它对一维数组进行排序,就像一个魅力。但主要是整数,而不是字符串:
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 循环。例如if (asc == 1) then output ascending, else output descending。然后将通过控制台询问 asc。
非常感谢任何帮助。
【问题讨论】:
-
我必须成为那个说它的人:永远不要使用 BubbleSort!期间。
-
看起来不像你想对一个二维数组进行排序,而是你想对一个元素是数组的数组进行排序。不同之处在于内部数组对 sort 函数没有什么特别之处。它们只是要排序的数组元素。
-
-
mitch:如果你这样做,你可能根本不应该对自己进行排序,而只依赖容器类和排序函数。但是,我几乎不认为这是问题的重点。冒泡排序是一种很好的排序算法,它易于理解,而且实现起来也不难。非常适合自学基础知识
-
mitch:这是在有人试图用他们的第一个排序算法弄湿他们的脚的情况下。不是每个人在第一次尝试时都会从他们的 *ss 中提取递归排序。
标签: java sorting multidimensional-array bubble-sort