Servus,
ich häng grad an einem Denkproblem, ich hoffe Ihr könnt mir da weiterhelfen:
Gegeben sei folgendes Codestückerl:
Das ist so wies dasteht nicht richtig (was ich aber grad nicht einseh).
Korrekterweise schaut es so aus:
Jetzt wurde mir schon gesagt, dass ich da falsch denke und in der oberen Lösung schon nach dem ersten Vergleich abgebrochen wird, und nicht jedes Element verglichen wird.
Aber eigentlich müsste es doch so wie es da steht, false ausgeben, weil das array ja eben nicht sortiert ist???
Hoffe jemand klärt mich auf
ich häng grad an einem Denkproblem, ich hoffe Ihr könnt mir da weiterhelfen:
Gegeben sei folgendes Codestückerl:
Java:
public class ArrayChecks {
static boolean isSorted(double[] arr) {
for(int i=1;i<arr.length;i++){
if(arr[i-1]<=arr[i]){
return true;
}
}
return false; // Diese Zeile muss eventuell überarbeitet werden.
}
public static void main(String[] args) {
double[] a1 = new double[] { 4, 1, 7, 9, 12, 16, 16, 38 };
System.out.println("a1 sortiert: " + isSorted(a1));
}
}
Korrekterweise schaut es so aus:
Java:
static boolean isSorted(double[] arr) {
for(int i=1;i<arr.length;i++){
if(arr[i-1]>arr[i]){
return false;
}
}
return true; // Diese Zeile muss eventuell überarbeitet werden.
}
Jetzt wurde mir schon gesagt, dass ich da falsch denke und in der oberen Lösung schon nach dem ersten Vergleich abgebrochen wird, und nicht jedes Element verglichen wird.
Aber eigentlich müsste es doch so wie es da steht, false ausgeben, weil das array ja eben nicht sortiert ist???
Hoffe jemand klärt mich auf