JAVA 编程中冒泡排序问题

tangxinshu 2010-06-13 12:47:47
大家好!刚刚学了数组,编程时遇到一些问题,希望各位高手帮我解决一下。



import javax.swing.JOptionPane;
class shuzu
{


public static void main(String []args)
{


int [] number =new number [5];

for (int i=0;i<number.length;i++)
{
String str=JOptionPane.showInputDialog("请输入第{i+1}个整数:");

int number [i]=Interger.parseInt(str); [color=#0000FF]//此处总是提示“需要‘[’”,但查不出是什么原因[/color]
}
System.out.println ("输入的数据为:");
for (int i=0;i<number.length;i++)

{
System.out.print (number [i]+"/t");
}

System.out.println ("倒序输出:");
for (int i=4;i>=0;i--)

{
System.out.print (number[i]+"/t");
}

System.out.println ("从小到大输出:");
for (int i=1;i<5;i++)
{
for (int j=0;j<=i;j++)
{
if (number[j]>number[j+i])
{
int a=number[j];
number [j]=number [j+1];
number [j+1]=a;
}

}

}
for (int i=0;i<5;i++)
System.out.print (number[i]+"/t");

}

}
...全文
334 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxt12300 2010-06-18
  • 打赏
  • 举报
回复
ArrayList.sort 也可以实现。
我是在javacard上使用,没有ArrayList对象可以用。
ascending参数用于设置升序、降序冒泡。
zxt12300 2010-06-18
  • 打赏
  • 举报
回复
private static void swap(byte[] src, short aOff, short bOff){
if (aOff < 0 || bOff < 0 ||
aOff > src.length || bOff > src.length ||
aOff == bOff) {
return;
}

byte tmpByte;
tmpByte = src[aOff];
src[aOff] = src[bOff];
src[bOff] = tmpByte;
}
zxt12300 2010-06-18
  • 打赏
  • 举报
回复
这个是我写的冒泡,参考下:

/**
* 数组排序(冒泡排序)
* @param src
* @param srcOff
* @param srcLen
* @param ascending
*/
public static void sort(byte[] src, short srcOff, short srcLen, boolean ascending){
short beginOff = srcOff;
short endOff = (short)(srcOff + srcLen);
short minmaxOff = -1;
byte tmpByte = -1;

while (beginOff < endOff) {
minmaxOff = beginOff;
tmpByte = src[beginOff];
for (short i = (short)(beginOff + 1); i < endOff; i++) {
byte curByte = src[i];

if (ascending) {
if (curByte < tmpByte) {
tmpByte = curByte;
minmaxOff = i;
}
} else {
if (curByte > tmpByte) {
tmpByte = curByte;
minmaxOff = i;
}
}
}
swap(src, beginOff, minmaxOff);
beginOff++;
}
}
honnorhao123 2010-06-14
  • 打赏
  • 举报
回复
看看再说,-=
24K純帥 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 keeya0416 的回复:]
int number [i]=Interger.parseInt(str);
把前边的 int 去掉
[/Quote]
是啊,不然的话就木有值了。。
ronniegxq 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 cs277241073 的回复:]

有几个比较低级的错误哎
[/Quote]
chan10 2010-06-13
  • 打赏
  • 举报
回复
你这个代码好乱啊。
改成下面这个:

for (int i = 0; i < number.length; i++) {
String str = JOptionPane.showInputDialog("请输入第{i+1}个整数:");

number[i] = Integer.parseInt(str); }
cs277241073 2010-06-13
  • 打赏
  • 举报
回复
有几个比较低级的错误哎
tianmazhoukong 2010-06-13
  • 打赏
  • 举报
回复
代码比较乱
lzu_vc 2010-06-13
  • 打赏
  • 举报
回复
java 中不到万不得已不要使用数组,你可以使用ArrayList<int>
建立对象以后使用sort()方法就可以解决,不用自己操作
niuniugege 2010-06-13
  • 打赏
  • 举报
回复
^= 这个操作符啥意思啊??
zhaoyongqiangri 2010-06-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qingyunzhuimeng 的回复:]
代码好乱,还是在看看书吧,尤其是刚学的人哦,问题越多,对你学习越有帮助,问题必须自己去克服。只有到了山穷水尽的时候再去问,那样你才会深刻
[/Quote]
up!
qingyunzhuimeng 2010-06-13
  • 打赏
  • 举报
回复
代码好乱,还是在看看书吧,尤其是刚学的人哦,问题越多,对你学习越有帮助,问题必须自己去克服。只有到了山穷水尽的时候再去问,那样你才会深刻
dr_lou 2010-06-13
  • 打赏
  • 举报
回复
int number [i]=Interger.parseInt(str);
去掉int
改成number[i] = Integer.parseInt(str);
keeya0416 2010-06-13
  • 打赏
  • 举报
回复
楼主的冒泡逻辑是错的吧?
下边给个我写的

// 递增
public static void bubbleSort(int... arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = arr.length - 1; j > i; j--) {
if (arr[j] < arr[j - 1]) {
arr[j] ^= arr[j - 1];
arr[j - 1] ^= arr[j];
arr[j] ^= arr[j - 1];
}
}
}
}
keeya0416 2010-06-13
  • 打赏
  • 举报
回复
int [] number =new number [5];???
不是 new int[5]吗

Interger 也写错了 是 Integer
keeya0416 2010-06-13
  • 打赏
  • 举报
回复
int number [i]=Interger.parseInt(str);
把前边的 int 去掉

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧