java 找数组中的最大数放到最前面

样例输入512345样例输出52341我是新手啊,不要用递归和函数的方法做啊,求解啊.顺便给注释,谢谢... 样例输入
5
1 2 3 4 5
样例输出
5 2 3 4 1我是新手啊,不要用递归和函数的方法做啊,求解啊.顺便给注释,谢谢
展开
 我来答
凌霜梅花
推荐于2016-01-10 · TA获得超过147个赞
知道答主
回答量:123
采纳率:0%
帮助的人:93.3万
展开全部
public class FindMax {
public static void main(String[] args) {
int []arr=new int[]{1,2,3,4,5};//初始化数组
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+",");//打印数组元素
System.out.println();
int max=0;
int index=0;
for(int i=0;i<arr.length;i++){//找出数组中最大的元素,赋值给max
if(arr[i]>max){
max=arr[i];
index=i;//保存最大元素在数组中的索引位置
}
}
int []arr1=new int[5];//初始化数组arr1
int j=0;
for(int i=0;i<5;i++){//将除max外的元素赋值给arr1数组的后4位
if(arr[i]!=max){
arr1[j+1]=arr[i];
j++;
}
}
arr1[0]=max;//将最大值赋值给arr1的第一个元素
for(int i=0;i<arr1.length;i++)
System.out.print(arr1[i]+",");//打印出重新排后的数组
System.out.println();
}
}
追问
回答的很好,但是数字都是由键盘输入的要怎么搞啊
追答
package algorithm;
import java.util.Scanner;
public class FindMax {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入数组中元素的个数:");
int n=sc.nextInt();
int arr[]=new int[n];
for(int i=0;imax){
max=arr[i];
index=i;
}
}
int []arr1=new int[n];
int j=0;
for(int i=0;i<n;i++){
if(arr[i]!=max){
arr1[j+1]=arr[i];
j++;
}
}
arr1[0]=max;
for(int i=0;i<arr1.length;i++)
System.out.print(arr1[i]+",");
System.out.println();
}
}
zhanglin800
2012-11-17 · TA获得超过325个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:132万
展开全部
int num[] = {1,2,3,4,5};
int index;//最大值位置
int maxnum;//最大值数值
index = 0;//预设值
maxnum = num[0];//预设值
for(int i=1;i<num.length;i++){//循环得到最大值的位置和值
if(num[i]>=maxnum){
index = i;
maxnum = num[i];
}
}
num[index] = num[0];//把最大值的位置里放入最一位置的数
num[0] = maxnum;//把第一位置的数据换成最大值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天佑聊AI
2012-11-17 · TA获得超过433个赞
知道小有建树答主
回答量:352
采纳率:0%
帮助的人:214万
展开全部
public class MySort {
public static void main(String[] args) {

MySort sort = new MySort();
int[] arr = new int[]{3,22,11,5,400,99,20,22,5};
sort.sort(arr);
for(int i : arr){
System.out.print(i+",");
}
}

public void sort(int[] targetArr){//大到小的排序

int temp = 0;
for(int i = 0;i<targetArr.length;i++){
for(int j = i;j<targetArr.length;j++){

if(targetArr[i]<targetArr[j]){

/*//方法一:
temp = targetArr[i];
targetArr[i] = targetArr[j];
targetArr[j] = temp;

//方法二:
targetArr[i] = targetArr[i] + targetArr[j];
targetArr[j] = targetArr[i] - targetArr[j];
targetArr[i] = targetArr[i] - targetArr[j];*/
}

}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友426ea6b
推荐于2016-07-18 · TA获得超过376个赞
知道小有建树答主
回答量:112
采纳率:100%
帮助的人:127万
展开全部
public static int getMax(int[] nums){
    int max;
    for(int num : nums){
        if(num > max){
            max = num;
        }
    }
    return max;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无耻的小兵
2012-11-17
知道答主
回答量:22
采纳率:0%
帮助的人:4.4万
展开全部
初学递归应该简单些。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式