有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

按顺序交换java中的数组元素

我试图按升序交换一个数组,但在某个地方我出了问题。我正在使用

int n = Integer.parse.int(args[0]);

但它不起作用。下面是完整的代码

package tech;

import java.util.*;
import java.io.*;

public class Techgig {
    public static int ta[]={1,12,5,111,200,1000,10,9,6,7,4};

    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Amount Mark has:");
        int rs=50;//Integer.parseInt(args[0]);
        //int a=0;
        System.out.println(rs);

        // for(int k=0;k<ta.length;k++)
        //System.out.print("\t"+ ta);
        int min,temp;
        for(int i=0;i<ta.length;i++)
        {
            min=i;
            // System.out.print("\t"+ ta[i]);
            for( int j=i+1;j<ta.length;j++)
            {
                if(ta[i]<ta[min])
                {
                    temp=ta[i];
                    ta[i]=ta[min];
                    ta[min]=temp;
                }
                // System.out.print("\t"+ ta[i]);
            }
        }

        for(int k=0;k<ta.length;k++)
        {
            System.out.print("\t"+ ta[k]);
        }
    }
}

共 (1) 个答案

  1. # 1 楼答案

    原因是您正在将“i”索引与您分配给min变量的自身进行比较,因此它永远不会在您的if条件下进行交换

    通过使用i和j作为索引并在两者之间进行检查,可以如下所示解决此问题:

    for(int i=0;i<ta.length;i++)
    {
      // System.out.print("\t"+ ta[i]);
        for( int j=i+1;j<ta.length;j++)
        {
          if(ta[j]<ta[i])
          {
              temp=ta[j];
              ta[j]=ta[i];
              ta[i]=temp;
          }
         // System.out.print("\t"+ ta[i]);
      }
     }