import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
int[] testArr = {1, 2, 5, 7, 9};
System.out.println(Arrays.toString(exchangeSort(testArr)));
System.out.println(Arrays.toString(selectSort(testArr)));
System.out.println(Arrays.toString(bubbleSort(testArr)));
System.out.println(binarySearch(testArr, 2));
}
public static int[] exchangeSort(int[] arr) {
int middleIndex = arr.length / 2 - 1;
int lastIndex = arr.length - 1;
for (int i = 0; i <= middleIndex; i++) {
int temp = arr[i];
arr[i] = arr[lastIndex - i];
arr[lastIndex - i] = temp;
}
return arr;
}
public static int[] selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int min = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[i]) {
min = j;
}
}
if (min != i) {
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
return arr;
}
public static int[] bubbleSort(int[] arr) {
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
public static int binarySearch(int[] arr, int dest) {
int begin = 0;
int end = arr.length - 1;
while (begin <= end) {
int middle = (begin + end) / 2;
if (arr[middle] == dest) {
return middle;
}
if (arr[middle] > dest) {
end = middle - 1;
}
if (arr[middle] < dest) {
begin = middle + 1;
}
}
return -1;
}
}