class ArrayDemo
{
public static void main(String[] args)
{
int [] arr=new int [3];
System.out.println(arr);
int [] arr2 = new int [] {1,2,3,4};
int [] arr3 = {21,35,56,2,48,101};
printArr(arr2);
System.out.println("Max = "+maxArray(arr3));
printArr(arr3);
System.out.println(getIndex(arr3,2));
System.out.println(getIndex(arr3,3));
sortSelect_2(arr3);
printArr(arr3);
System.out.println(binarySearch(arr3,35));
System.out.println(binarySearch(arr3,36));
System.out.println(halfSearch(arr3,35));
System.out.println(halfSearch(arr3,36));
}
public static int getIndex(int [] arr, int key)
{
for (int i = 0;i<arr.length ;i++ )
{
if (key==arr[i])
{
return i;
}
}
return -1;
}
public static int binarySearch(int [] arr,int key)
{
int right = 0,left = arr.length-1,mid ;
while (right<=left)
{
mid = (right+left)>>1;
if (key<arr[mid])
left = mid - 1;
else if (key>arr[mid])
right = mid +1;
else
return mid;
}
return -1;
}
public static int halfSearch( int [] arr, int key )
{
int right = 0,left = arr.length-1,mid = (right + left)>>1 ;
while (key!=arr[mid])
{
if (key<arr[mid])
left = mid - 1;
else if (key>arr[mid])
right = mid +1;
if(right>left)
return -1;
mid = (right + left)>>1 ;
}
return mid;
}
public static void sortSelect_2(int [] arr)
{
for (int i = 0;i<arr.length -1;i++ )
{
int index=i;
for (int j = i+1;j <arr.length ;j++ )
{
if(arr[index]>arr[j])
{
index=j;
}
}
if (index!=i)
{
swap(arr,index,i);
}
}
}
public static void sortBubble(int [] arr)
{
for (int i = 0;i<arr.length-1 ;i++ )
{
for (int j = 0; j<arr.length-1-i ;j++ )
{
if (arr[j]>arr[j+1])
{
swap(arr,j,j+1);
}
}
}
}
public static void sortChose(int [] arr)
{
for (int i = 0 ;i<arr.length-1 ;i++)
{
for (int j = i+1;j<arr.length ;j++ )
{
if (arr[i]>arr[j])
{
swap(arr,i,j);
}
}
}
}
public static void printArr( int [] arr)
{
System.out.print("[ ");
for (int i = 0;i<arr.length ;i++ )
{
if (i==arr.length-1)
System.out.println(arr[i]+" ]");
else
System.out.print(arr[i]+", ");
}
}
public static int maxArray (int [] arr){
int maxElement = arr[0];
for (int i = 0;i<arr.length ;i++ )
{
if( arr[i]>maxElement)
maxElement=arr[i];
}
return maxElement;
}
public static void swap(int [] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
}