
java编程问题,强人来答!本人晕乎!
1.对N个整数进行桶排序(升序)。桶排序的基本思想是:把待排序的数据放在一个一维数组中,另外设一个10*N的二维数组。设待排序的数据中最大的是4位数,则排序需要4轮扫描,...
1. 对N个整数进行桶排序(升序)。桶排序的基本思想是:把待排序的数据放在一个一维数组中,另外设一个10*N的二维数组。设待排序的数据中最大的是4位数,则排序需要4轮扫描,每一轮扫描包括分散扫描和集中扫描。
• 分散扫描:把一维数组中的数据分散保存到二维数组中。求出各待排序的数据的个位,以个位为行下标,保存到二维数组相应的行中。例如104和24保到第三行(行下标为4),90保存到第一行(行下标为0)。如果两个数的行下标相同则保存到同一行中。其列下标的先后顺序由它们在一维数组中的先后顺序确定。
• 集中扫描:把二维数组中的数据按照下标顺序保存回到一维数组中。例如上面的三个数存回到一维数组后成为90,104,24。
第二轮扫描针对各数据的十位数做分散扫描和集中扫描。扫描后的一维数组中数据序列为:104,24,90;第三轮针对百位数,扫描后的数据排列为:24,90,104,排序完成。每一遍扫描都要显示二维数组中内容。
给出程序,并做详细说明,谢谢~~
这是我们学校变态的上机实验,我才大一~~ 真够了
山大,回答行吗,我在机房在线等;三楼不行啊,java.lang.NoClassDefFoundError: Fibonacci
Exception in thread "main" 错误~ 展开
• 分散扫描:把一维数组中的数据分散保存到二维数组中。求出各待排序的数据的个位,以个位为行下标,保存到二维数组相应的行中。例如104和24保到第三行(行下标为4),90保存到第一行(行下标为0)。如果两个数的行下标相同则保存到同一行中。其列下标的先后顺序由它们在一维数组中的先后顺序确定。
• 集中扫描:把二维数组中的数据按照下标顺序保存回到一维数组中。例如上面的三个数存回到一维数组后成为90,104,24。
第二轮扫描针对各数据的十位数做分散扫描和集中扫描。扫描后的一维数组中数据序列为:104,24,90;第三轮针对百位数,扫描后的数据排列为:24,90,104,排序完成。每一遍扫描都要显示二维数组中内容。
给出程序,并做详细说明,谢谢~~
这是我们学校变态的上机实验,我才大一~~ 真够了
山大,回答行吗,我在机房在线等;三楼不行啊,java.lang.NoClassDefFoundError: Fibonacci
Exception in thread "main" 错误~ 展开
4个回答
展开全部
文件名改成Test.java 再试试
public class Test
{
static final int N=10;
static void insert(int num,int i,int[][] a)
{
int m=0;
for(m=0;m<N;m++)
if(a[i][m]==0)
{
a[i][m]=num;
break;
}
}
static void show(int[][] a)
{
for(int i=0;i<10;i++){
for(int j=0;j<N;j++){
System.out.print(" ");
if(a[i][j]!=0)
System.out.print(a[i][j]);
else
System.out.print(" ");
}
System.out.println ();
}
}
static void change(int[] a,int[][] b)
{
int k=0;
for(int m=0;m<N;m++)
for(int n=0;n<N;n++)
{
if(b[m][n]!=0)
{
a[k]=b[m][n];
k++;
}
}
}
public static void main (String[] args) {
int num;
int[] a={23,453,221,2361,1111,26,4452,90,2,666};
int[][] b=new int[10][N];
for(int m=0;m<N;m++){
num=a[m]%10;
insert(a[m],num,b);
}
System.out.println ("个位:");
show(b);
change(a,b);
b=new int[10][N];
for(int m=0;m<N;m++){
num=(a[m]/10)%10;
insert(a[m],num,b);
}
System.out.println ("十位:");
show(b);
change(a,b);
b=new int[10][N];
for(int m=0;m<N;m++){
num=(a[m]/100)%10;
insert(a[m],num,b);
}
System.out.println ("百位:");
show(b);
change(a,b);
b=new int[10][N];
for(int m=0;m<N;m++){
num=(a[m]/1000)%10;
insert(a[m],num,b);
}
System.out.println ("千位:");
show(b);
change(a,b);
System.out.println ("最终结果:");
{
for(int l=0;l<N;l++)
{System.out.print(a[l]);
System.out.print(" ");
}
}
}
}
应该是这样没错 注释就先算了 你先看看再说
public class Test
{
static final int N=10;
static void insert(int num,int i,int[][] a)
{
int m=0;
for(m=0;m<N;m++)
if(a[i][m]==0)
{
a[i][m]=num;
break;
}
}
static void show(int[][] a)
{
for(int i=0;i<10;i++){
for(int j=0;j<N;j++){
System.out.print(" ");
if(a[i][j]!=0)
System.out.print(a[i][j]);
else
System.out.print(" ");
}
System.out.println ();
}
}
static void change(int[] a,int[][] b)
{
int k=0;
for(int m=0;m<N;m++)
for(int n=0;n<N;n++)
{
if(b[m][n]!=0)
{
a[k]=b[m][n];
k++;
}
}
}
public static void main (String[] args) {
int num;
int[] a={23,453,221,2361,1111,26,4452,90,2,666};
int[][] b=new int[10][N];
for(int m=0;m<N;m++){
num=a[m]%10;
insert(a[m],num,b);
}
System.out.println ("个位:");
show(b);
change(a,b);
b=new int[10][N];
for(int m=0;m<N;m++){
num=(a[m]/10)%10;
insert(a[m],num,b);
}
System.out.println ("十位:");
show(b);
change(a,b);
b=new int[10][N];
for(int m=0;m<N;m++){
num=(a[m]/100)%10;
insert(a[m],num,b);
}
System.out.println ("百位:");
show(b);
change(a,b);
b=new int[10][N];
for(int m=0;m<N;m++){
num=(a[m]/1000)%10;
insert(a[m],num,b);
}
System.out.println ("千位:");
show(b);
change(a,b);
System.out.println ("最终结果:");
{
for(int l=0;l<N;l++)
{System.out.print(a[l]);
System.out.print(" ");
}
}
}
}
应该是这样没错 注释就先算了 你先看看再说
展开全部
你的哪个名牌大学的??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
山大果然名不虚传!!!!
java.lang.NoClassDefFoundError: Fibonacci
Exception in thread "main" 错误~
此非彼!
java.lang.NoClassDefFoundError: Fibonacci
Exception in thread "main" 错误~
此非彼!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2008-12-20
展开全部
nb...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询