package com.course.objects; /** * * @author avoidcloud */ public class Array { private int size; private int length; private int[] data; private String Order; public Array(int size) { this.size = size; data = new int[size]; length = 0; } public Array(){ size = 10; data = new int[size]; length = 0; } /* Insert Methods*/ public void push_back(int element){ if(length 0){ length--; return data[length]; } return 0; } public int pop_front(){ if(length > 0){ int element = data[0]; for(int i=1; i 0) return false; return true; } public void show(){ for(int i=0; i data[j]){ int temp = data[i]; data[i] = data[j]; data[j] = temp; } } } } else if(Order.equals("des")){ for(int i=0; i data[j]){ int temp = data[i]; data[i] = data[j]; data[j] = temp; } } } } /*------------------- Merge Sort -------------------------*/ public void MergeSort(String Order){ Order = Order.toLowerCase(); this.Order = Order; MergeSort(0, length-1); } /* Merge Sort OverLoading*/ public void MergeSort(){ Order = "asc"; MergeSort(0, length-1); } /* Merge sort functionality*/ private void MergeSort(int start, int stop){ if(start rightData[rightIndex]){ data[index] = leftData[leftIndex]; index++; leftIndex++; } else{ data[index] = rightData[rightIndex]; index++; rightIndex++; } } while(leftIndex value){ int temp = data[i]; data[i] = data[index]; data[index] = temp; index++; } } int temp = data[stop]; data[stop] = data[index]; data[index] = temp; return index; } else return stop; } public void InsertionSort(){ Order = "asc"; for(int i=1; i 0 && data[index-1] > value){ data[index] = data[index-1]; index--; } data[index] = value; } } public void InsertionSort(String Order){ Order = Order.toLowerCase(); this.Order = Order; if(Order.equals("asc")){ for(int i=1; i 0 && data[index-1] > value){ data[index] = data[index-1]; index--; } data[index] = value; } } else if(Order.equals("des")){ for(int i=1; i 0 && data[index-1] < value){ data[index] = data[index-1]; index--; } data[index] = value; } } } /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ------------------------ Binary Search -------------------------- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ public int Search(int item){ return BinarySearch(0, length, item); } /* Binary Search functionality */ private int BinarySearch(int start, int stop, int item){ if(Order.equals("asc")){ while(start<=stop){ int mid = start + (stop-start)/2; if(data[mid] == item) return mid; else if(data[mid] < item) start = mid+1; else stop = mid - 1; } } else if(Order.equals("des")){ while(start<=stop){ int mid = start + (stop-start)/2; if(data[mid] == item) return mid; else if(data[mid] > item) start = mid+1; else stop = mid - 1; } } return -1; } }