唐山海港二中老师简介:java疑问

来源:百度文库 编辑:中科新闻网 时间:2024/05/03 08:57:17
public class a610
{
public static void main(String args[]){
int A[]={1,2,3,4,5}; int B[]=new int[5]; int sum;
B=star(A);
sum=B[0]-B[1];
System.out.println("Max:"+B[0]);
System.out.println("min:"+B[1]);
System.out.println("sum:"+sum);
}
public static int[] star(int arr[]){ int t=0;
for(int i=0;i<arr.length;i++)
{for(int j=1;j<arr.length;j++)
{
if(arr<arr[j])
{t=arr;
arr=arr[j];
arr[j]=t;}
}}
return arr;}
}

写出最大 和最小值 之间的差
我怎么都想不同我自己写的for(int i=0;i<arr.length;i++)
{for(int j=1;j<arr.length;j++)
{
if(arr<arr[j])
{t=arr;
arr=arr[j];
arr[j]=t;}
}}
不是把大的放第一位吗?小的放最后一位吗?
可是sum=B[0]-B[1];
System.out.println("Max:"+B[0]);
System.out.println("min:"+B[1]);
小的在数组第2位B[1]
按我的思路他应该在 B[4]才对啊!
这是为什么呢?
谢谢解答
if(arr[i]<arr[j])
{t=arr[i];
arr[i]=arr[j];
arr[j]=t;}
我打错了!对原来我就这样写的!
至于
冒泡排序啊,循环写的不对。
for(int i=0;i<arr.length-1;i++)
{for(int j=i+1;j<arr.length;j++)
{
这样才对。

我试了不行哦!

把方法star中的if语句改为下面的

if(arr[i]<arr[j])
{t=arr[i];
arr[i]=arr[j];
arr[j]=t;}

看是否解决了?
我看你的算法没有问题。

冒泡排序啊,循环写的不对。
for(int i=0;i<arr.length-1;i++)
{for(int j=i+1;j<arr.length;j++)
{
这样才对。