for (int i = 0; i < values.length - 1; i++) {
for (int j = 0; j < values.length; j++) {
if (values[j] > values[j + 1]) {
swap(values, j, j+1);
}
}
}
(n-1) + (n-2) + ... + 2 + 1 = n(n-1)/2 ~ O(n^2)
for (int i = 0; i < values.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < values.length; j++) {
if (values[j] < values[minIndex]) {
minIndex = j;
}
}
swap(values, i, minIndex);
}
for (int i = 1; i < values.length; i++) {
int temp = values[i];
int j = i;
while (j > 0 && values[j-1] > temp) {
values[j] = values[j-1];
j--;
}
values[j] = temp;
}
When # of element grow,
Bubble > Selection > Insertion