import java.util.Comparator;
public class Test09 {
public static void main(String[] args) {
Integer[]arr={3,5,2,5,2};
sort(arr);
for(Integer i:arr){
System.out.println(i);
}
String[] st= {"hello","Hello","Chai","chai"};
sort(st,new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
return o1.compareToIgnoreCase(o2);
}
});
for(String i:st){
System.out.println(i);
}
}
public static <T> void sort(T[] arr){
for (int i = 1; i < arr.length; i++) {
for (int j = 0; j < arr.length-i; j++) {
Comparable<T> c=(Comparable<T>) arr[j];
if(c.compareTo(arr[j+1])>0){
T temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
public static<T>void sort(T[] arr,Comparator<? super T> c){
for (int i = 1; i < arr.length; i++) {
for (int j = 0; j < arr.length-i; j++) {
if(c.compare(arr[j],arr[j+1])>0){
T temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}