Shows exception : array out of bound

import java.util.Scanner;

public class bubble {
static Scanner scn = new Scanner(System.in);

public static void main(String[] args) {

// System.out.println(“size?”);
// int n = scn.nextInt();
//
// int[] arr = null;
// arr = new int[n];
int[] array = { 23, 53, 64, 12, 64, 53, 44, 23, 90, 76, 59, 76 };
// insertarray(arr);
insertionsort(array);
// Bubblesort(arr);
// Selectionsort(arr);
displayarray(array);

}

public static void insertionsort(int[] arr) {

	for (int counter = 1; counter <= arr.length - 1; counter++) {
		int val = arr[counter];
		int j = counter - 1;
		while (val < arr[j] && j >= 0) {
			arr[j + 1] = arr[j];
			j--;
		}
		arr[j + 1] = val;
	}
}

public static void selectionsort(int[] arr) {
	for (int counter = 0; counter < arr.length - 1; counter++) {
		int min = counter;
		for (int j = counter + 1; j <= arr.length - 1; j++) {
			if (arr[min] > arr[j]) {
				min = j;
			}
		}

		int temp = arr[counter];
		arr[counter] = arr[min];
		arr[min] = temp;
	}
}

public static void displayarray(int[] arr) {
	for (int i = 0; i <= arr.length - 1; i++) {
		System.out.println(arr[i]);
	}
}

public static void insertarray(int[] arr)

{
	for (int i = 0; i <= arr.length - 1; i++) {
		System.out.println("type the " + i + " element");
		arr[i] = scn.nextInt();
	}
}

public static void bubblesort(int[] arr) {
	for (int counter = 0; counter < arr.length - 1; counter++) {
		for (int j = 0; j < arr.length - 1 - counter; j++) {
			if (arr[j] > arr[j + 1]) {
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;

			}
		}
	}
}

public static void Selectionsort(int[] arr) {
	for (int counter = 0; counter < arr.length - 1; counter++) {
		int min = counter;
		for (int j = counter + 1; j <= arr.length - 1; j++) {
			if (arr[j] < arr[min]) {
				min = j;
			}
		}
		int temp = arr[min];
		arr[min] = arr[counter];
		arr[counter] = temp;
	}
}

public static void Bubblesort(int[] arr) {
	for (int counter = 0; counter < arr.length - 1; counter++) {
		int max = arr[0];
		for (int j = 0; j < arr.length - 1; j++) {
			if (arr[j + 1] < arr[j]) {
				int temp = arr[j + 1];
				arr[j + 1] = arr[j];
				arr[j] = temp;
			}
		}
	}
}

}
import java.util.Scanner;

public class bubble {
static Scanner scn = new Scanner(System.in);

public static void main(String[] args) {

// System.out.println(“size?”);
// int n = scn.nextInt();
//
// int[] arr = null;
// arr = new int[n];
int[] array = { 23, 53, 64, 12, 64, 53, 44, 23, 90, 76, 59, 76 };
// insertarray(arr);
insertionsort(array);
// Bubblesort(arr);
// Selectionsort(arr);
displayarray(array);

}

public static void insertionsort(int[] arr) {

	for (int counter = 1; counter <= arr.length - 1; counter++) {
		int val = arr[counter];
		int j = counter - 1;
		while (val < arr[j] && j >= 0) {
			arr[j + 1] = arr[j];
			j--;
		}
		arr[j + 1] = val;
	}
}

public static void selectionsort(int[] arr) {
	for (int counter = 0; counter < arr.length - 1; counter++) {
		int min = counter;
		for (int j = counter + 1; j <= arr.length - 1; j++) {
			if (arr[min] > arr[j]) {
				min = j;
			}
		}

		int temp = arr[counter];
		arr[counter] = arr[min];
		arr[min] = temp;
	}
}

public static void displayarray(int[] arr) {
	for (int i = 0; i <= arr.length - 1; i++) {
		System.out.println(arr[i]);
	}
}

public static void insertarray(int[] arr)

{
	for (int i = 0; i <= arr.length - 1; i++) {
		System.out.println("type the " + i + " element");
		arr[i] = scn.nextInt();
	}
}

public static void bubblesort(int[] arr) {
	for (int counter = 0; counter < arr.length - 1; counter++) {
		for (int j = 0; j < arr.length - 1 - counter; j++) {
			if (arr[j] > arr[j + 1]) {
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;

			}
		}
	}
}

public static void Selectionsort(int[] arr) {
	for (int counter = 0; counter < arr.length - 1; counter++) {
		int min = counter;
		for (int j = counter + 1; j <= arr.length - 1; j++) {
			if (arr[j] < arr[min]) {
				min = j;
			}
		}
		int temp = arr[min];
		arr[min] = arr[counter];
		arr[counter] = temp;
	}
}

public static void Bubblesort(int[] arr) {
	for (int counter = 0; counter < arr.length - 1; counter++) {
		int max = arr[0];
		for (int j = 0; j < arr.length - 1; j++) {
			if (arr[j + 1] < arr[j]) {
				int temp = arr[j + 1];
				arr[j + 1] = arr[j];
				arr[j] = temp;
			}
		}
	}
}

}

can someone tell me the problem in selection sort

please concise your code which code to check?

public static void selectionsort(int[] arr) {
for (int counter = 0; counter < arr.length - 1; counter++) {
int min = counter;
for (int j = counter + 1; j <= arr.length - 1; j++) {
if (arr[min] > arr[j]) {
min = j;
}
}

	int temp = arr[counter];
	arr[counter] = arr[min];
	arr[min] = temp;
}

}
look for this one
it shows …array out of bound