public class Bubble {
public static void main(String[] args) {
int[] a = {38, 17, 16, 16, 7, 31, 39, 32, 2, 11};
for(int i = 0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
if(a[j]<a[i]){
exchange(a,i,j);
}
}
}
for(Integer x:a){
System.out.print(" "+x);
}
}
public static void exchange(int[] array,int i, int j){
if(i == j){return;}
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
public class Insert {
public static void main(String[] args) {
int[] a = {38, 17, 16, 16, 7, 31, 39, 32, 2, 11};
for(int i = 1;i<a.length;i++){
int temp = a[i];
int j = i;
for(;j>0;j--){
if(a[j-1]>temp){
a[j] = a[j-1];
}else{
break;
}
}
a[j] = temp;
}
for(Integer x:a){
System.out.print(" "+x);
}
}
}
public class Quick {
public static void main(String[] args) {
int[] a = {41,59,43,26,63,30,29,26,42};
sort(a,0,a.length-1);
for(Integer x:a){
System.out.print(" "+x);
}
}
private static void sort(int[] array, int lo, int hi) {
if (lo >= hi) {
return;
}
int toFinal = array[lo];
int leftIdx = lo;
int rightIdx = hi;
int i = lo + 1;
while (i <= rightIdx) {
if (array[i] == toFinal) {
i++;
} else if (array[i] < toFinal) {
exchange(array, leftIdx++, i++);
} else {
exchange(array, rightIdx--, i);
}
}
sort(array, lo, leftIdx - 1);
sort(array, rightIdx + 1, hi);
}
public static void exchange(int[] array,int i, int j){
if(i == j){return;}
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
public class Select {
public static void main(String[] args) {
int[] a = {38, 17, 16, 16, 7, 31, 39, 32, 2, 11};
for(int i = 0;i<a.length;i++){
int selected = i;
for(int j=i+1;j<a.length;j++){
if(a[j]<a[selected]){
selected = j;
}
}
exchange(a,i,selected);
}
for(Integer x:a){
System.out.print(" "+x);
}
}
public static void exchange(int[] array,int i, int j){
if(i == j){return;}
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}