Well, first of all, that's not bubble sort at all.
Here's bubble sort:
bool swapped = true;
while (swapped) {
swapped = false;
for (int i = 0; i < randomIntegers.length - 1; i++){
if (randomIntegers[i] > randomIntegers[i + 1]) {
swapped = true;
int temp = randomIntegers[i];
randomIntegers[i] = randomIntegers[i + 1];
randomIntegers[i + 1] = temp;
}
}
}
Here's an improved version of bubble sort, where the items known to be sorted are excluded:
bool swapped = true;
for (int i = randomIntegers.length - 1; swapped && i >= 0; i--){
swapped = false;
for (int j = 0; j < i; j++){
if (randomIntegers[j] > randomIntegers[j + 1]) {
int temp = randomIntegers[j];
randomIntegers[j] = randomIntegers[j + 1];
randomIntegers[j + 1] = temp;
}
}
}
On the subject of optimising the code that you have, whatever algorithm that is, you can let j
loop from i + 1
instead of i
, so that you don't need to use j + 1
everywhere. Also, use a temporary variable to swap the items:
for (int i = 0; i < randomIntegers.length; i++) {
for (int j = i + 1; j < randomIntegers.length; j++) {
if (randomIntegers[i] > randomIntegers[j]) {
int temp = randomIntegers[i];
randomIntegers[i] = randomIntegers[j];
randomIntegers[j] = temp;
}
}
}