java以最快的速度将数组的第一个为最大第二个为最小以此类推
比如说4,2,3,5,0,1排序后5,0,4,1,3,2不管长度单个还是双个都可以实现是返回数组不是输出。。。...
比如说4,2,3,5,0,1 排序后5,0,4,1,3,2 不管长度单个还是双个都可以实现 是返回数组 不是输出。。。
展开
展开全部
//比较复杂。应该有更简单和陵的办法。
public static void main(String[] args) {
int[] nums=new int[]{4,2,3,5,0,4,4,3,1,2 兆枝};
//数组转成list
List<Integer> list=new ArrayList<Integer>();
for (int i = 0; i < nums.length; i++) {
list.add(nums[i]);
}
list=sort(list,new ArrayList<Integer>(),list.size());
//list转数组
Object[] numss=list.toArray();
}
/**
* @param nums
* @param count
*/
private static List<Integer> sort(List<Integer> list,List<Integer> list1,int length) {
int index=0;
int index1=0;
int temp=list.get(0);
int temp1=list.get(0);
for (int i = 0; i < list.size(); i++) {
//得出最大值temp
if (list.get(i)>temp) 唤猜戚{
temp=list.get(i);
//保存最大值索引
index=i;
}
//得到最小值temp1
if(list.get(i)<temp1){
temp1=list.get(i);
//保存最小值索引
index1=i;
}
//最后次删除已选择的最大和最小元素并将剩下的元素放入新的list
if (i==list.size()-1) {
list1.add(list.get(index));
list1.add(list.get(index1));
if (index1>index) {
list.remove(index1);
list.remove(index);
if (list.size()==0) {
return list1;
}
i=0;
index=0;
index1=0;
temp=list.get(0);
temp1=list.get(0);
}else if(index1<index){
list.remove(index);
list.remove(index1);
if (list.size()==0) {
return list1;
}
i=0;
index=0;
index1=0;
temp=list.get(0);
temp1=list.get(0);
}else{
list.remove(index1);
if (list.size()==0) {
return list1;
}
i=0;
index=0;
index1=0;
temp=list.get(0);
temp1=list.get(0);
}
if (list.size()==1) {
list1.add(list.get(index1));
return list1;
}
if (list.size()==0) {
return list1;
}
}
}
return null;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询