回 帖 发 新 帖 刷新版面

主题:关于排序

public class arr
{
    public static void main(String args[])
    {
        
        
        int arrn[]={3,34,21,32,6,61,10,45};
        int i,j,tmp;
        tmp=0;
        for(i=0;i<7;i++)
        {
            for(j=1;j<i;j++)
            {
                if(arrn[i]>arrn[j])
                {
                        arrn[i]=arrn[j];
                        arrn[j]=tmp;
                        tmp=arrn[i];
                }    
            }    
        }    
        for(i=0;i<7;i++)
        {
            System.out.println(arrn[i]+" ");    
        }
    }
}
我是初学者,书本上要求我们把数组{3,34,21,32,6,61,10,45}从小到大排序,还请各位高手能帮我找一下问题所在

回复列表 (共3个回复)

沙发

for(i=0;i<8;i++)
        {
            for(j=0;j<8;j++)
            {
                if(arrn[j]>arrn[j+1])
                {
                       tmp=arrn[j+1];
                        arrn[j+1]=arrn[j];
                        arrn[j]=tmp;
                }    
            }    
        }    
        for(i=0;i<8;i++)
你是8个数啊,得把7改成8啊

板凳

对于排序问题,其实很多。我给你列出两个方法。
1.public class ArrayPaixu_2 {
     public static void main(String[] args){
         int[] a ={3,34,21,32,6,61,10,45};
         print(a);
         selectionSort(a);
         print(a);
     }
     private static void print(int[] a){
         for(int i=0;i<a.length;i++){
             System.out.print(a[i]+" ");
         }
         System.out.println();
             
     }
     //选择排序
     private static void selectionSort(int[] a){
         for(int i=0;i<a.length;i++){
             for(int j=i+1;j<a.length;j++){
                 if(a[j]<a[i]){
                     int temp=a[i];
                     a[i]=a[j];
                     a[j]=temp;
                 }
             }
         }
     }
     

}

2.public class ArrayPaixu 
{
     public static void main(String args[])
     {      int i,j,temp=0;
            int a[]={3,34,21,32,6,61,10,45};
            for(i=0;i<a.length;i++)
            {
                System.out.print(a[i]+" "); //排序前   
            }
           //冒泡排序
            for(i=0;i<a.length-1;i++)
            {
                for(j=0;j<a.length-i-1;j++)
                {
                    if(a[j]>a[j+1])
                    {
                            temp=a[j];
                            a[j]=a[j+1];
                            a[j+1]=temp;
                    }    
                }    
            }    
            for(i=0;i<a.length;i++)
            {   
                System.out.print(" "); 
                System.out.print(a[i]+" "); //排序后   
            }
        }

}
其实还可以用Arrays.sort();等,你自己试下吧!
如有问题:Java C#编程爱好者联盟  QQ超级群号:36858648欢迎你加入学习和交流!

3 楼

深圳市华信群英科技有限公司与知名通信软件公司正式签订定向输送人才的合作协议
针对想进入IT软件行业的有志人士提供专业的企业内训
实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段
实训前就签订就业安置协议,岗前实训后入职
不仅学费优惠而且是企业定向培训定向招聘,百分百保证就业
有意向请登录www.szctt.com,或加QQ:1179397962做详细咨询

我来回复

您尚未登录,请登录后再回复。点此登录或注册