Cómo clasificar 5 números, de mayor a menor, con sentencias if y no arrays en Java o Python

import java.util.Scanner;
clase pública principal {
private static int printCount = 0;

impresión nula pública estática (int n) {
System.out.println (n);
printCount ++;
}

public static void main (String [] args) {
Escáner escáner = nuevo escáner (System.in);
int a = scanner.nextInt ();
int b = scanner.nextInt ();
int c = scanner.nextInt ();
int d = scanner.nextInt ();
int e = scanner.nextInt ();

while (verdadero) {
if (printCount == 5) {
rotura;
}
if (a> = b && a> = c && a> = d && a> = e) {
impresión (a);
a = Integer.MIN_VALUE;
Hacer continuación;
} else if (b> = c && b> = d && b> = e) {
impresión (b);
b = Integer.MIN_VALUE;
Hacer continuación;
} else if (c> = d && c> = e) {
impresión (c);
c = Integer.MIN_VALUE;
Hacer continuación;
} más si (d> = e) {
impresión (d);
d = Integer.MIN_VALUE;
Hacer continuación;
}más{
impresión (e);
e = Integer.MIN_VALUE;
Hacer continuación;
}
}
}
}

¿Alguna razón en particular por la que quieres hacer esto con una declaración if?

Esto es lo que puedes hacer:

int tmp;
if (a> b) {tmp = a; a = b; b = tmp; }
si (c> d) {tmp = c; c = d; d = tmp; }
if (a> c) {tmp = a; a = c; c = tmp; }
si (b> d) {tmp = b; b = d; d = tmp; }
si (b> c) {tmp = b; b = c; c = tmp; }

Sin embargo, eso es para 4 variables, puede ver Ordenar redes para saber cómo hacer el emparejamiento para más variables.

Red de clasificación.

Compare e intercambie en pasos, probablemente usa la capacidad fuera de orden de la CPU para terminar múltiples oraciones “si” simultáneamente si no son ifs sino operadores “ternarios” abreviados:

Paso 1

1 vs 2 y 3 vs 4 (ambos son computables independientemente)

Paso 2 (computable independientemente con el paso 3)

1 vs 3

Paso 3 (independientemente calculable con el paso 2)

0 vs 2

Paso 4 (independientemente computable con el paso 5)

2 vs 4

Paso 5 (independientemente computable con el paso 4)

0 vs 3

Paso 6

0 contra 1 y 2 contra 3 (ambos son computables independientemente)

Paso 7

1 vs 2

En total, solo se necesitan 9 oraciones “si”. Java o Python no importan, deberías poder escribir estos pseudocódigos en lenguaje real.

Si la ejecución paralela funciona, debería ser similar a solo 5 oraciones “si” en términos de latencia, gracias a la arquitectura de la CPU actual, ni siquiera necesita múltiples núcleos.

Puedes intentar fusionar ordenar también. Tiene un patrón.

Use una lógica simple, reemplace la sintaxis de C ++ con Java:

If (num1> num2 && num1> num3 && num1> num4 && num1> num5)
{
cout << "El primer número es" << num1;
}

Luego enjuague y repita.