我这个代码是写冒泡法和选择法 然后随即输入数进行进行排列 结果没显示错误 只显示了一对字母 是什么意思呀
class maopaoArrange{
public void maopao(int[] arr){
int i,j,temp;
for(i=0;i<arr.length-1;i++)
{
for(j=0;j<arr.length-i;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(i=0;i<arr.length;i++)
{
System.out.print("冒泡排序后的数据");
System.out.print(" "+arr[i]);
}
}}
class MixArrange{
public void Mix(int[] arr){
for(int i=0;i<10;i++)
{
int temp=0;
int k=i;
for(int j=1+i;j<10;j++)
{
if(arr[j]<arr[k])
{
temp=arr[j];
arr[j]=arr[k];
arr[k]=temp;
}
}
}
for(int i=0;i<arr.length;i++)
{
System.out.print("选择排序后的数据");
System.out.print(" "+arr[i]);
}
}
}
public class ArrayArrange{
public static void main(String[] args){
maopaoArrange mc1=new maopaoArrange();
MixArrange mc2=new MixArrange();
int[] arr=new int[10];
for(int i=0;i<10;i++)
{
arr[i]=(int)(Math.random()*30);
}
mc1.maopao(arr);
mc2.Mix(arr);
}
}
class maopaoArrange{
public void maopao(int[] arr){
int i,j,temp;
for(i=0;i<arr.length-1;i++)
{
for(j=0;j<arr.length-i;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(i=0;i<arr.length;i++)
{
System.out.print("冒泡排序后的数据");
System.out.print(" "+arr[i]);
}
}}
class MixArrange{
public void Mix(int[] arr){
for(int i=0;i<10;i++)
{
int temp=0;
int k=i;
for(int j=1+i;j<10;j++)
{
if(arr[j]<arr[k])
{
temp=arr[j];
arr[j]=arr[k];
arr[k]=temp;
}
}
}
for(int i=0;i<arr.length;i++)
{
System.out.print("选择排序后的数据");
System.out.print(" "+arr[i]);
}
}
}
public class ArrayArrange{
public static void main(String[] args){
maopaoArrange mc1=new maopaoArrange();
MixArrange mc2=new MixArrange();
int[] arr=new int[10];
for(int i=0;i<10;i++)
{
arr[i]=(int)(Math.random()*30);
}
mc1.maopao(arr);
mc2.Mix(arr);
}
}
红色部分改成1
System.out.print("冒泡排序后的数据\n");
for (i = 0; i < arr.length; i++) {
System.out.print(" " + arr[i]);
}
System.out.println("\n");
把冒泡的输出改成这个样子
System.out.print("选择排序后的数据\n");
for (int i = 0; i < arr.length; i++) {
System.out.print(" " + arr[i]);
}
System.out.println("\n");
把选择排序的改成这个样子
另外注意maopaoArrange这个类名首字母大写
public void maopao(int[] arr){
int i,j,temp;
for(i=0;i <arr.length-1;i++) {
for(j=0;j <arr.length-i-1;j++) { //你原来的是:for(j=0;j <arr.length-i;j++)
if(arr[j]>arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.print("冒泡排序后的数据"); //这句从下面的for循环中移出来
for(i=0;i <arr.length;i++){
System.out.print(" "+arr[i]);
}
System.out.println(); //我加的。
}
} class MixArrange{
public void Mix(int[] arr){
for(int i=0;i <arr.length;i++){ //你原来是for(int i=0;i <10;i++) 你用10不对,如果arr这个数组不是10的长度,就有问题了。
int temp=0;
//你用k记录最小元素的下标,这样在下面的for循环中就不用每次交换元素了。只在循环结束交换一次就可以了。
int k=i;
for(int j=1+i;j <arr.length;j++){ //你原来是:for(int j=1+i;j <10;j++)
if(arr[j] <arr[k]) {
k=j;
}
}
temp=arr[k];
arr[k]=arr[i];
arr[i]=temp;
}
System.out.print("选择排序后的数据"); //这句多下面的for循环中移出来。
for(int i=0;i <arr.length;i++){
System.out.print(" "+arr[i]);
}
System.out.println(); //我加的
}
} public class ArrayArrange{
public static void main(String[] args){
maopaoArrange mc1=new maopaoArrange();
MixArrange mc2=new MixArrange();
int[] arr=new int[10];
for(int i=0;i <arr.length;i++){ //for(int i=0;i <10;i++)
arr[i]=(int)(Math.random()*30);
System.out.print(" "+arr[i]); //我加的。把数组的原始状态打印出来,以便比较。
}
System.out.println(); //我给你加的
mc1.maopao(arr);
mc2.Mix(arr);
}
}