此代码包含使用数组进行冒泡排序。我需要使用多维数组。
public class list {
public static void main(String[] args) {
{
int temp;
int a[] = { 0, 7, 4, 5, 6, 2, -1, 3 };
for (int i = 0; i < a.length; i++) {
for (int j = i; j < a.length; j++) {
if (a[i] < a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
System.out.print(a[i] + ",");
}
}
}
}
output:7,6,5,4,3,2,0,-1,
答案 0 :(得分:0)
试试这个:如果你想在java中对2D数组进行排序,那么你可以查看这个例子。
class Sort2D
{
public static void main(String args[])throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter the no. of rows: "); //inputting number of rows
int m=Integer.parseInt(br.readLine());
System.out.print("Enter the no. of columns: "); //inputting number of columns
int n=Integer.parseInt(br.readLine());
int A[][]=new int[m][n]; //creating a 2D array
/* Inputting the 2D Array */
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
System.out.print("Enter the elements: ");
A[i][j]=Integer.parseInt(br.readLine());
}
}
/* Printing the original 2D Array */
System.out.println("The original array:");
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
System.out.print(A[i][j]+"\t");
}
System.out.println();
}
/* Sorting the 2D Array */
int t=0;
for(int x=0;x<m;x++)
{
for(int y=0;y<n;y++)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(A[i][j]>A[x][y])
{
t=A[x][y];
A[x][y]=A[i][j];
A[i][j]=t;
}
}
}
}
}
/* Printing the sorted 2D Array */
System.out.println("The Sorted Array:");
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
System.out.print(A[i][j]+"\t");
}
System.out.println();
}
}
}
答案 1 :(得分:0)
您必须一次对一个维度进行排序,多个维度需要多次运行。因此,创建另一个方法并一次将一个维度传递给sort方法。它还取决于商业案例。在任何情况下,bubblesort都不能比O(n2)做得更好,事实上,对于m n 2-d数组,它是m O(n2)。
另一种策略可能是,将数组从多个维度展平为单个维度,然后对一个维度进行排序。