我的问题是不可以排序呀,谁可以帮忙看看问题,谢谢了
public class method {
public static void rank(int n) {
int i, num;
int a[] = new int[n];
Random rd = new Random(); for (i = 0; i < n; i++)
a[i] = rd.nextInt(1000);
for (i = 1; i < n; i++) {
num = a[i];
while(num < a[i - 1])
{
a[i] = a[i - 1];
break;
}
a[i] = num;
}
System.out.println("排序后数组为:");
for (i = 0; i < n; i++)
System.out.println(a[i]);
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("输入随机数的个数");
String str = sc.next();
int n = Integer.parseInt(str);
rank(n);
}}
public class method {
public static void rank(int n) {
int i, num;
int a[] = new int[n];
Random rd = new Random(); for (i = 0; i < n; i++)
a[i] = rd.nextInt(1000);
for (i = 1; i < n; i++) {
num = a[i];
while(num < a[i - 1])
{
a[i] = a[i - 1];
break;
}
a[i] = num;
}
System.out.println("排序后数组为:");
for (i = 0; i < n; i++)
System.out.println(a[i]);
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("输入随机数的个数");
String str = sc.next();
int n = Integer.parseInt(str);
rank(n);
}}
解决方案 »
- 调试中出现source not found
- 如何把单线程改成多线程处理数据(大侠),小弟在线等
- JLabel的文字显示不出来,要最小化一下才能显示出来?
- aaa|bbb|ccc|用replace怎么把|替换掉?
- 多线程的循环问题!!谢谢了
- 大家帮忙呢,编个程序,打印输出“I love you”,用图形符号“*”组合拼出?
- java构建三维模型,请高手指点迷津。。
- 救急~~~请问怎样在程序中调用别人写好的Action中的actionPerformed(ActionEvent e)中的代码?
- 哪里有j2ee SDK 1.3下载
- 询问ie中的Applet的NotSuchMethodException异常!
- 效率真低下啊,弄了一天才学会了一段代码(80行)
- ******关于Applet上使用Java3D的问题*****
num = a[i];
while(num < a[i - 1])
{
a[i] = a[i - 1];
break;
}
a[i] = num;
}把上面的换成这个 // 插入排序
int temp;
/* 每拿到一个元素,都要将这个元素与所有它之前的元素遍历比较一遍,
* 让符合排序顺序的元素挨个移动到当前范围内它最应该出现的位置
* */
for(int i=1; i<a.length; i++) {
for(int j=i; (j>0) && (a[j] > a[j-1]); j--) {//a[j] > a[j-1]为降序排列
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
} 你需要了解一下插入排序的原理
public static void rank(int n) {
int a[] = new int[n];
Random rd = new Random(); for (int i = 0; i < n; i++) {
a[i] = rd.nextInt(1000);
} int temp = 0;// 中间变量
int min = 0;// 最小值
int minIndex = 0;// 最小值下标
for (int i = 0; i < a.length; i++) {
min = a[i];
minIndex = i;
for (int j = i + 1; j < a.length; j++) {
if (a[j] < min) {
min = a[j];
minIndex = j;
} }
temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
} System.out.println("排序后数组为:");
for (int i = 0; i < n; i++)
System.out.print(a[i] + "\t");
} public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("输入随机数的个数");
String str = sc.next();
int n = Integer.parseInt(str);
rank(n);
}}
//这里的循环有问题
for (i = 1; i < n; i++) {
num = a[i];
while(num < a[i - 1])
{
a[i] = a[i - 1];
break;
}
a[i] = num;
}
//改为
for (i = 1; i < n; i++) {
num = a[i];
j=i-1;
while(num < a[j]&&j>=0)
{
a[j+1]=a[j];
j--;
}
a[j+1] = num;
}