java 交换数组中的两个数。 10
classTes4{publicstaticvoidmain(String[]args){int[]arr={2,1,45,6};Arr.sortMax(arr);Arr...
class Tes4
{
public static void main(String[] args)
{
int [] arr={2,1,45,6};
Arr.sortMax(arr);
Arr.printArr(arr);
}
}
class Arr
{
public static void sortMax(int [] arr)
{
int temp;
for(int x=0;x<arr.length;x++)
{
for(int y=x;y<arr.length;y++)
{
if(arr[x]<arr[y])
{
swap(arr[x],arr[y]);
}
}
}
}
// 交换两个数
private static void swap(int a,int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
//打印数组
public static void printArr(int [] arr)
{
for(int x=0;x<arr.length-1;x++)
{
System.out.print(arr[x]+" ");
}
System.out.println(arr[arr.length-1]);
}
}
上边交换两个数如果用
private static void swap(int [] arr,int a,int b)
{
arr[a]=arr[a]+arr[b];
arr[b]=arr[a]-arr[b];
arr[a]=arr[a]-arr[b];
}
排序就正常。为什么(int a ,intb)排序结果不对? 展开
{
public static void main(String[] args)
{
int [] arr={2,1,45,6};
Arr.sortMax(arr);
Arr.printArr(arr);
}
}
class Arr
{
public static void sortMax(int [] arr)
{
int temp;
for(int x=0;x<arr.length;x++)
{
for(int y=x;y<arr.length;y++)
{
if(arr[x]<arr[y])
{
swap(arr[x],arr[y]);
}
}
}
}
// 交换两个数
private static void swap(int a,int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
//打印数组
public static void printArr(int [] arr)
{
for(int x=0;x<arr.length-1;x++)
{
System.out.print(arr[x]+" ");
}
System.out.println(arr[arr.length-1]);
}
}
上边交换两个数如果用
private static void swap(int [] arr,int a,int b)
{
arr[a]=arr[a]+arr[b];
arr[b]=arr[a]-arr[b];
arr[a]=arr[a]-arr[b];
}
排序就正常。为什么(int a ,intb)排序结果不对? 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询