Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要帮助理解这个特定的降序选择整数排序吗_Java_Sorting_Integer_Selection Sort - Fatal编程技术网

Java 需要帮助理解这个特定的降序选择整数排序吗

Java 需要帮助理解这个特定的降序选择整数排序吗,java,sorting,integer,selection-sort,Java,Sorting,Integer,Selection Sort,正如标题中所说,这是一个使用选择排序的整数降序排序。这是一个程序。。我很难理解这些步骤。有人能帮我理解它吗?提前谢谢 import java.util.Scanner; public class Selectionsort_descending { public static void main(String args[]) { int i,j,k,m,n; Scanner sc = new Scanner(System.in); System.out.println("Enter any nu

正如标题中所说,这是一个使用选择排序的整数降序排序。这是一个程序。。我很难理解这些步骤。有人能帮我理解它吗?提前谢谢

import java.util.Scanner;
public class Selectionsort_descending
{
public static void main(String args[])
{
int i,j,k,m,n;
Scanner sc = new Scanner(System.in);
System.out.println("Enter any number");
n=sc.nextInt();
int a[]=new int [n];

for (i=0;i<=n-1;i++)
{
System.out.println("Enter number");
a[i]=sc.nextInt();
    }
for (j=0;j<=n-1;j++)
{
for (k=j;k<=n-1;k++)
{
if (a[j]<a[k])
{
m=a[j];
a[j]=a[k];
a[k]=m;
    }
}
    }
for (i=0;i<=n-1;i++)
{
System.out.print(a[i]+" ");
    }    
    }
}
import java.util.Scanner;
公共类选择排序
{
公共静态void main(字符串参数[])
{
int i,j,k,m,n;
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入任何数字”);
n=sc.nextInt();
int a[]=新的int[n];

对于(i=0;i首先,我强烈建议对代码进行更多格式化

通过这样做,您的代码应该是这样的(我做了一些改进,然后我会解释)

import java.util.Scanner;
公共类选择排序{
公共静态void main(字符串参数[]){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入任何数字”);
int n=sc.nextInt();
int a[]=新的int[n];
对于(int i=0;i

首先,我更改了“I,因为交换是在内部循环内完成的,它是冒泡排序或类似的东西。如果交换是在内部循环外完成的,它是选择排序或类似的东西。Wiki链接:


你在哪里找到这段代码的?它不符合编码标准,缩进不当,使用了不可读的变量名。如果你想学习,那么这不是专业人士写的,你不应该从中学习。我的一位校友做的……为什么兄弟?程序中有什么问题@RealSkeptic@rockz3r-Si如果交换是在内部循环内完成的,则是冒泡排序或类似的操作。如果交换是在内部循环外完成的,则是选择排序或类似的操作。请参阅下面我的答案,其中包括带有示例代码的wiki链接。伙计…我告诉了选择排序..我知道如何执行冒泡排序。我想解释选择排序。:)@Linux nox正在看程序..你做的是选择排序..但是你错告诉了“这个算法叫做冒泡排序”。。
import java.util.Scanner;

public class Selectionsort_descending {
public static void main(String args[]) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter any number");
    int n = sc.nextInt();
    int a[] = new int[n];

    for (int i = 0; i < n ; i++) {
        System.out.println("Enter number");
        a[i] = sc.nextInt();
    }
    
    for (int j = 0; j < n ; j++) {
        for (int k = j; k < n; k++) {
            if (a[j] < a[k]) {
                int m = a[j];
                a[j] = a[k];
                a[k] = m;
            }
        }
    }
    
    for (int i = 0; i < n ; i++) {
        System.out.print(a[i] + " ");
    }
    
    sc.close();
}
}