选择排序
这个选择排序当输入数字不同时,可以正常工作,可是数字一有重复就不行了,为什么啊???import java.util.Scanner;
import javax.swing.*;
public class selsct {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n=Integer.parseInt(JOptionPane.showInputDialog("请输入数组规模:"));
int num[]=new int ;
Scanner in=new Scanner(System.in);
int i;
System.out.println("请输入数组的值");
for(i=0;i<num.length;i++)
num=in.nextInt();
int []b=shuzu(num);
for(i=0;i<num.length;i++)
System.out.print(b+" ");
}
public static int []shuzu(int a[])
{
int j,i,temp;
for(i=0;i<a.length-1;i++)
{
int mini=i;
for(j=i+1;j<a.length;j++)
{
if(a<=a)
mini=j;
}
temp=a;
a=a;
a=temp;
}
return a;
}
} shuzu()这个方法中第二层for循环if(a<=a) 是什么鬼啊? LL原来的代码逻辑有一些问题,不知道是不是拷贝的时候出错了。我复制进Eclipse修改的时候红叉叉好多
import java.util.Scanner;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = Integer.parseInt(JOptionPane.showInputDialog("请输入数组规模:"));
int num[] = new int;
Scanner in = new Scanner(System.in);
int i;
System.out.println("请输入数组的值");
for (i = 0; i < num.length; i++)
num = in.nextInt();
int[] b = shuzu(num,in);
for (i = 0; i < num.length; i++)
System.out.print(b + " ");
}
//选择排序 从小到大
public static int[] shuzu(int a[],Scanner in) {
int j, i, temp,mini;
for (i = 0; i < a.length; i++) {
//mini用于存储最小值的下标
mini = i;
//temp用于存储最小值
temp = a;
//下面这个循环结束后,最小值存在temp里,最小值的下标存在j中
for (j = i+1 ; j < a.length; j++) {
if (a <= temp)
{
mini = j;
temp = a;
}
}
//此时进行交换
temp = a;
a = a;
a = temp;
}
return a;
}
}
这个是可以正常运行的代码
请输入数组的值
5 4 3 0 0
0 0 3 4 5 本帖最后由 风扫地 于 2018-4-11 15:24 编辑
num=in.nextInt();//这是什么鬼整数可以直接赋值给数组的引用?
a <= a //同上
temp = a;//同上
a = a; //同上
for (i = 0; i < num.length; i++)
system.out.println(b + "") ; //到底要输出引用(地址)还是输出数组元素
數組和數組元素能直接赋值?可以直接通过b输出b?????
修改了一下测试貌似没楼主说的问题:
import java.util.Scanner;
import javax.swing.JOptionPane;
class selsct {
public static void main(String[] args) {
int n = Integer.parseInt( JOptionPane.showInputDialog( "请输入数组大小" ) );
int num[] = new int;
Scanner in = new Scanner( System.in );
int i = 0;
System.out.println("请输入数组的值");
for (i = 0; i < num.length; i++)
{
num[ i ] = in.nextInt( );
}
in.close();
int[] b = selectSort(num);
for (i = 0; i < num.length; i++)
System.out.print(b + " ");
}
public static int[] selectSort(int a[]) {
int j, i, temp;
for (i = 0; i < ( a.length - 1 ); i++ ){
int mini = i;
for (j = i + 1; j < a.length; j++) {
if (a <= a)
mini = j;
}
temp = a;
a = a;
a = temp;
}
return a;
}
}
请输入数组的值
1 1 1 5 4
1 1 1 4 5
页:
[1]