| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 366 人关注过本帖
标题:[求助]一个JAVA排序问题
只看楼主 加入收藏
hwj20070118
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2007-1-18
收藏
 问题点数:0 回复次数:1 
[求助]一个JAVA排序问题
有一组数,如:23,45,25,16,86,39,75,现要求按以下要求进行排序:
(1)让这些数中最大的那个数,放在第一位;最小的那个数放在第二位;
(2)让剩下的数中,最大的放在第三位,最小的放在第四位;
(3)照此类推,进行排序.

请问,应该怎样进行排序.(最好附上代码).谢谢.
搜索更多相关主题的帖子: JAVA 
2007-04-03 12:13
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
给一个简单的递归解决算法吧.当然,还有更好的算法

import java.util.Scanner;
/**
*交错排序的递归算法
*@author: Eastsun
*/
public class SortArray{
private static void swap(int[] array,int a,int b){
int tmp =array[a];
array[a] =array[b];
array[b] =tmp;
}
public static void sort(int[] array,int start,int end){
if(end-start<=1) return;
if(array[start]<array[start+1]) swap(array,start,start+1);
for(int index =start+2;index<end;index++)
if(array[start]<array[index]) swap(array,start,index);
else if(array[start+1]>array[index]) swap(array,start+1,index);
sort(array,start+2,end);
}
public static void main(String[] args){
Scanner s =new Scanner(System.in);
while(true){
System.out.print(\"输入要排序数的个数(0结束):\");
int n =s.nextInt();
if(n<=0) break;
System.out.print(\"输入\"+n+\"个要排序的数:\");
int[] array =new int[n];
for(int i =0;i<n;i++) array[i] =s.nextInt();
sort(array,0,array.length);
System.out.print(\"排序结果为:\");
for(int i=0;i<n;i++) System.out.printf(\"%7d\",array[i]);
System.out.println();
}
}
}

My BlogClick Me
2007-04-03 19:30
快速回复:[求助]一个JAVA排序问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025110 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved