import java.io.*;
import java.util.*;
public class Sort {
int [] a;
public Sort (int size) {
a = new int [size];
Random r = new Random();
for (int i = 0; i < size; i++) {
a[i]= r.nextInt(9999);
}
}
public int [] radixSort () {
ArrayList[] buckets = new ArrayList[10];
for (int b = 0; b < 4; b ++) {
for (int i = 0; i < 10; i++) {
buckets [i] = new ArrayList();
}
int n = 0;
for (int i = 0;i < a.length; i++) {
buckets[(a[i]/10^n)% 10].add(a[i]);
}
int count = 0;
for(int i = 0; i<buckets.length; i++){
for(int o = 0; o<buckets[i].size(); o = o){
a[count] = (Integer)(buckets[i].remove(o));
count++;
}
}
}
return a;
}
public int [] bSort (){
long count = 0;
long swap = 0;
for (int i =0; i<a.length-1; i++){
for (int u =0; u<a.length-1; u++){
count++;
if (a[u] > a[u+1]){
swap ++;
int Tmp = a[u];
a[u] = a[u+1];
a[u+1] = Tmp;
}
}
}
System.out.println ("Swaps:" + swap);
System.out.println("Comparisons:" + count);
return a;
}
public int[] selectionSort(){
long count = 0;
long swap = 0;
for (int i = 0; i<a.length-1; i++){
int s = i;
for (int m = i; m<a.length; m++){
count ++;
if (a[m]<a[s]){
s = m;
}
}
int Tmp = a[i];
a[i] = a[s];
a[s] = Tmp;
swap ++;
}
System.out.println("SelectionSwaps: " + swap);
System.out.println("SelectionComparisons: " + count);
return a;
}
public int[] insertionSort(){
long count = 0;
long swap = 0;
for (int i=0; i<a.length - 1; i++){
int Tmp = a[i];
int m = i;
for (m = i; m < a.length -1; m++){
a[m] = a[m+1];
count ++;
swap ++;
}
a[m] = Tmp;
swap ++;
}
System.out.println("InsertionSwaps: " + swap);
System.out.println("InsertionComparisons: " + count);
return a;
}
// public String toString() {
// return Arrays.toString (a);
//}
}