回 帖 发 新 帖 刷新版面

主题:问题

public class Order{
    public static void main(String args[]){
    
        int[] nums={6,2,5,7,1,9,3,8,4};
        int[] a=paixu(nums);
        for(int i=0;i<nums.length;i++){
            System.out.print(a[i]);
        }
        } 
    public static int paixu(int nums[]){
        int temp=0;
        int[] nums={6,2,5,7,1,9,3,8,4};
        for(int i=nums.length-1;i>0;i--){
            for(int j=0;j<i;j++){
                if(nums[j]>nums[j+1]){
                    temp=nums[j];
                    nums[j]=nums[j+1];
                    nums[j+1]=nums[j];             
                }
            }
        
        }
        return nums;
        
    }    
    }
    请问怎末改正错误。目的是冒泡排序。

回复列表 (共3个回复)

沙发

应该是下面:
public class Order
{
static void paixu(int [] nums)
{
   int size = nums.length-1;    //数组中无须比较位
   int swaps = 0;                //交换标志
   do{
    swaps = 0;
    for(int i = 0;i<size;i++)
    {
     if(nums[i]>nums[i+1])
     {
      int temp = nums[i];
      nums[i] = nums[i+1];
      nums[i+1] = temp;
      swaps++;
     }
    }
    size--;
   }while(swaps != 0);
}

public static void main(String ss[])
{
   int nums[] = {6,2,5,7,1,9,3,8,4};//待排序的数组
   paixu(nums);
   for(int i = 0;i<nums.length;i++)
   {
    System.out.print(nums[i]+"     ");
   }
}
}

板凳

public class Order
{
    public static void main(String args[])
    {
    
        int[] nums={6,2,5,7,1,9,3,8,4};
        paixu(nums);
        for(int i=0;i<nums.length;i++)
        {
            System.out.print(nums[i]);
        }
    } 
    
    public static void paixu(int nums[])
    {
        for(int i=1;i<nums.length;i++)
        {
            for(int j=0;j<nums.length-i;j++)
            {
                if(nums[j]>nums[j+1])
                {
                    int temp=nums[j];
                    nums[j]=nums[j+1];
                    nums[j+1] = temp;             
                }
            }
        
        }
    }    
}

3 楼


谢谢你们。

我来回复

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