Da die Frage Titel ich bin nicht in der Lage zu verstehen, legt nahe, weshalb Verfahren für die getrennten Eingänge unterschiedlich sind meine Sortierung verhaltenWarum verhält sich diese Sortiermethode bei bestimmten Eingaben anders?
Frage Einschränkungen: Ein String-Array ist für die Eingabe von n
Zahlen verwendet werden, und ordnen sie dann in absteigender Reihenfolge Ordnung und wenn Sie kommen in Zahlen gleiche Werte wie 000.0
und .0
mit, sollten sie in der gleichen Reihenfolge aufgeführt werden, wie ich sie eingegeben und sollte auch die Ausgabe in demselben Format sein, wie sie eingegeben wurden.
Meine Frage: für n=2
als ich eintrat 0.12,.12
, meinen Code Ausgang 0.12, .12
, aber während für n=3
wenn ich 1, 0.12,.12
Ausgabe, die es eingegeben 1,.12, 0.12
(statt 1,0.12,.12
) so, warum dies nicht vorkommt? Und kann eine geringfügige Änderung in meinem Code diesen Fehler beheben?
Code:
String[] s= new String[n];
//input :
for(int i=0;i<n;i++)
s[i]=sc.next();
//Sorting :
for(int i=0;i<n;i++)
{
BigDecimal d=new BigDecimal(s[i]);
for (int j =i+1; j<n; j++)
{
BigDecimal a=new BigDecimal(s[j]);
if(d.compareTo(a)==-1)
{
String m = s[j];
s[j]=s[i];
s[i]=m;
}
}
}
//Output :
for(int i=0;i<n;i++)
System.out.println(s[i]);
Die compareto
Verfahren beim Umgang mit Bigdecimal
Typnummern halten 0.12
und .12
als gleich, aber wenn String
Typen Variablen Handhabung nicht .12
und 0.12
als gleich, also, während Vergleich nur nicht berücksichtigt Ich konvertierte sie in Bigdecimal
Typen, aber für die Anzeige hielt ich sie als Strings
seit Bigdecimal
Typen abrunden .12
als 0.12
aber Strings
nicht.
Warum Sie halten Ihre eigene Sortiermethode anstatt das zu tun mit, was Ihnen wurde gesagt, dass Sie in Ihrer vorherigen Frage tun sollten? https://stackoverflow.com/questions/47114295/why-does-my-sorting-method-for-bigdecimal-numbers-fails-to-sort. Warum sollten Sie Ihren Code nicht einrücken und unlesbar machen? –
@JBNizet nein, ich habe diesen Prozess und alle Ausgänge waren völlig in Ordnung und erwartet, ich war nur ein bisschen ein bisschen mehr neugierig .... Wohin habe ich mich irr ... –