Bubble sort, selection sort and insertion sort. with java implementations.
if (a[i1] == a[j1] && i1 < j1)
i2 < j2
public static void bubbleSort(int [] a) {
for (int i = 0; i < a.length; i++) {
int flag = 0;
for (int j = 1; j < a.length - i; j++) {
if ((a[j - 1]) > a[j] ) {
int temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
flag = 1;
}
}
if (flag == 0) {
return;
}
}
}
public static void selectionSort(int [] a) {
for (int i = 0; i < a.length; i++) {
int min = i;
for (int j = i + 1 ; j < a.length; j++) {
if( a[j] < a[min]) {
min = j;
}
}
if (min != i ) { // if not at the same position
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
}
public static void insertionSort(int[] a) {
for (int i = 1; i < a.length; i++) {
int current = a[i];
int j;
for ( j = i ; j > 0 && current < a[j -1] ; j--) {
a[j] = a[j-1];
}
a[j] = current;
}
}