java程序 这个程序怎么错了?
- 提问者网友:流星是天使的眼泪
- 2021-04-12 13:15
{
public static void main(String[]args)
{
int []a = {1,23,44,55,66,45,46,77,88,99};
int temp;
for (int i=1;i<10;i++)
for(int j=9;j>i;j--)
{
if(a[i]>a[i+1])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
for(int i=0;i<10;i++)
System.out.println(a[i]);
}
}
- 五星知识达人网友:大漠
- 2021-04-12 14:19
循环有问题。。
变成i一直只跟i后面的数比较,应该和j比较才对。。:
for (int i=0;i<10;i++)
for(int j=9;j>i;j--)
{
if(a[i]>a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
- 1楼网友:罪歌
- 2021-04-12 16:11
冒泡排序法 就按下面的去试一下看行不
package com.java.test; public class TestBubbleUp { public static int[] sort(int[] m) { int theLenth = m.length; for (int i = 0; i < theLenth; i++) { for (int j = 0; j < theLenth - i - 1; j++) { int a = m[j]; int b = m[j + 1]; if (a < b) { m[j] = b; m[j + 1] = a; } } } return m; } public static void main(String args[]) { int[] m = { 0, 1, 9, 13, 27, 39, 88, 100 }; int[] n = sort(m); for (int i = 0; i < m.length; i++) { System.out.println(n[i] + "\n"); } } }
- 2楼网友:神鬼未生
- 2021-04-12 15:09
- 3楼网友:有你哪都是故乡
- 2021-04-12 14:30
if(a[i]>a[i+1]) //<--i=9的时候,a[i+1]越界
不过你这段代码逻辑上有问题啊,应该是
public class Paixu { public static void main(String[]args) { int []a = {1,23,44,55,66,45,46,77,88,99}; int temp; for (int i=1;i<10;i++) for(int j=9;j>i;j--) { if(a[i]>a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } for(int i=0;i<10;i++) System.out.println(a[i]); } }