Skip to content

Commit b4cbd5c

Browse files
committed
Initial commit
0 parents  commit b4cbd5c

27 files changed

Lines changed: 1826 additions & 0 deletions

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto

.gitignore

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Compiled class file
2+
*.class
3+
4+
# Log file
5+
*.log
6+
7+
# BlueJ files
8+
*.ctxt
9+
10+
# Mobile Tools for Java (J2ME)
11+
.mtj.tmp/
12+
13+
# Package Files #
14+
*.jar
15+
*.war
16+
*.ear
17+
*.zip
18+
*.tar.gz
19+
*.rar
20+
21+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
22+
hs_err_pid*

Array.java

Lines changed: 372 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,372 @@
1+
/*
2+
* To change this license header, choose License Headers in Project Properties.
3+
* To change this template file, choose Tools | Templates
4+
* and open the template in the editor.
5+
*/
6+
package com.test.one;
7+
8+
9+
/**
10+
*
11+
* @author avoidcloud
12+
*/
13+
public class Array {
14+
15+
private int size;
16+
private int length;
17+
private int[] data;
18+
private String Order;
19+
20+
public Array(int size) {
21+
this.size = size;
22+
data = new int[size];
23+
length = 0;
24+
}
25+
public Array(){
26+
size = 10;
27+
data = new int[size];
28+
length = 0;
29+
}
30+
31+
/* Insert Methods*/
32+
public void push_back(int element){
33+
if(length<size){
34+
data[length] = element;
35+
length++;
36+
}
37+
}
38+
public void push_front(int element){
39+
if(length<size){
40+
for(int i=0; i<length; i++){
41+
data[i+1] = data[i];
42+
}
43+
data[0] = element;
44+
length++;
45+
}
46+
}
47+
public void insertAt(int index, int element){
48+
if(index<length && length<size){
49+
for(int i=index; i<length; i++){
50+
data[i+1] = data[i];
51+
}
52+
data[index] = element;
53+
length++;
54+
}
55+
}
56+
57+
/* delete methods*/
58+
public int pop_back(){
59+
if(length > 0){
60+
length--;
61+
return data[length];
62+
}
63+
return 0;
64+
}
65+
public int pop_front(){
66+
if(length > 0){
67+
int element = data[0];
68+
for(int i=1; i<length; i++){
69+
data[i-1] = data[i];
70+
}
71+
length--;
72+
return element;
73+
}
74+
return 0;
75+
}
76+
77+
/* Array's status methods*/
78+
public int length(){
79+
return length;
80+
}
81+
public boolean isEmpty(){
82+
if(length > 0)
83+
return false;
84+
return true;
85+
}
86+
public void show(){
87+
for(int i=0; i<length; i++)
88+
System.out.print(data[i]+" ");
89+
System.out.println();
90+
}
91+
/* set a full array */
92+
public void setArray(int[] array){
93+
if(array.length <= size){
94+
size = array.length;
95+
data = array;
96+
length = size;
97+
}
98+
else{
99+
for(int i=0; i<size; i++){
100+
data[i] = array[i];
101+
}
102+
length = size;
103+
}
104+
}
105+
106+
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
107+
:::::::::::::::::::::::::: Sorting Algorithms ::::::::::::::::::::::::::::::::
108+
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
109+
110+
/*-------------------Bubble Sort-------------------------*/
111+
public void BubbleSort(String Order){
112+
Order = Order.toLowerCase();
113+
this.Order = Order;
114+
115+
if(Order.equals("asc")){
116+
for(int i=0; i<length-1; i++){
117+
for(int j=i+1; j<length; j++){
118+
if(data[i] > data[j]){
119+
int temp = data[i];
120+
data[i] = data[j];
121+
data[j] = temp;
122+
}
123+
}
124+
}
125+
}
126+
else if(Order.equals("des")){
127+
for(int i=0; i<length-1; i++){
128+
for(int j=i+1; j<length; j++){
129+
if(data[i] < data[j]){
130+
int temp = data[i];
131+
data[i] = data[j];
132+
data[j] = temp;
133+
}
134+
}
135+
}
136+
}
137+
138+
}
139+
/* Bubble Sort Overloading*/
140+
public void BubbleSort(){
141+
Order = "asc";
142+
for(int i=0; i<length-1; i++){
143+
for(int j=i+1; j<length; j++){
144+
if(data[i] > data[j]){
145+
int temp = data[i];
146+
data[i] = data[j];
147+
data[j] = temp;
148+
}
149+
}
150+
}
151+
}
152+
153+
/*------------------- Merge Sort -------------------------*/
154+
public void MergeSort(String Order){
155+
Order = Order.toLowerCase();
156+
this.Order = Order;
157+
158+
MergeSort(0, length-1);
159+
}
160+
/* Merge Sort OverLoading*/
161+
public void MergeSort(){
162+
Order = "asc";
163+
164+
MergeSort(0, length-1);
165+
}
166+
/* Merge sort functionality*/
167+
private void MergeSort(int start, int stop){
168+
if(start<stop){
169+
int mid = start + (stop-start)/2;
170+
171+
MergeSort(start, mid);
172+
MergeSort(mid+1, stop);
173+
174+
MergeArray(start, mid, stop);
175+
}
176+
}
177+
private void MergeArray(int start, int mid, int stop){
178+
int leftLength = mid - start + 1;
179+
int rightLength = stop - mid ;
180+
181+
int[] leftData = new int[leftLength];
182+
int[] rightData = new int[rightLength];
183+
184+
for(int i=0; i<leftLength; i++){
185+
leftData[i] = data[start+i];
186+
}
187+
for(int i=0; i<rightLength; i++){
188+
rightData[i] = data[mid+1+i];
189+
}
190+
191+
int index = start, leftIndex = 0, rightIndex = 0;
192+
193+
if(Order.equals("asc")){
194+
while(leftIndex<leftLength && rightIndex<rightLength){
195+
if(leftData[leftIndex] < rightData[rightIndex]){
196+
data[index] = leftData[leftIndex];
197+
index++;
198+
leftIndex++;
199+
}
200+
else{
201+
data[index] = rightData[rightIndex];
202+
index++;
203+
rightIndex++;
204+
}
205+
}
206+
while(leftIndex<leftLength){
207+
data[index] = leftData[leftIndex];
208+
index++;
209+
leftIndex++;
210+
}
211+
while(rightIndex<rightLength){
212+
data[index] = rightData[rightIndex];
213+
index++;
214+
rightIndex++;
215+
}
216+
217+
}
218+
else {
219+
while(leftIndex<leftLength && rightIndex<rightLength){
220+
if(leftData[leftIndex] > rightData[rightIndex]){
221+
data[index] = leftData[leftIndex];
222+
index++;
223+
leftIndex++;
224+
}
225+
else{
226+
data[index] = rightData[rightIndex];
227+
index++;
228+
rightIndex++;
229+
}
230+
}
231+
while(leftIndex<leftLength){
232+
data[index] = leftData[leftIndex];
233+
index++;
234+
leftIndex++;
235+
}
236+
while(rightIndex<rightLength){
237+
data[index] = rightData[rightIndex];
238+
index++;
239+
rightIndex++;
240+
}
241+
}
242+
243+
}
244+
/*---------------------------Quick Sort---------------------*/
245+
public void QuickSort(String Order){
246+
Order = Order.toLowerCase();
247+
this.Order = Order;
248+
QuickSort(0, length-1);
249+
}
250+
public void QuickSort(){
251+
Order = "asc";
252+
QuickSort(0, length-1);
253+
}
254+
/* Quick Sort Functionality */
255+
private void QuickSort(int start, int stop){
256+
if(start < stop){
257+
int pivot = fixedIndex(start, stop);
258+
259+
QuickSort(start, pivot-1);
260+
QuickSort(pivot+1, stop);
261+
}
262+
}
263+
private int fixedIndex(int start, int stop){
264+
int index = start;
265+
int value = data[stop];
266+
267+
if(Order.equals("asc")){
268+
for(int i=start; i<stop; i++){
269+
if(data[i] < value){
270+
int temp = data[i];
271+
data[i] = data[index];
272+
data[index] = temp;
273+
index++;
274+
}
275+
}
276+
int temp = data[stop];
277+
data[stop] = data[index];
278+
data[index] = temp;
279+
280+
return index;
281+
}
282+
else if(Order.equals("des")){
283+
for(int i=start; i<stop; i++){
284+
if(data[i] > value){
285+
int temp = data[i];
286+
data[i] = data[index];
287+
data[index] = temp;
288+
index++;
289+
}
290+
}
291+
int temp = data[stop];
292+
data[stop] = data[index];
293+
data[index] = temp;
294+
295+
return index;
296+
}
297+
else
298+
return stop;
299+
}
300+
public void InsertionSort(){
301+
Order = "asc";
302+
for(int i=1; i<length; i++){
303+
int index = i;
304+
int value = data[i];
305+
while(index > 0 && data[index-1] > value){
306+
data[index] = data[index-1];
307+
index--;
308+
}
309+
data[index] = value;
310+
}
311+
}
312+
public void InsertionSort(String Order){
313+
Order = Order.toLowerCase();
314+
this.Order = Order;
315+
if(Order.equals("asc")){
316+
for(int i=1; i<length; i++){
317+
int index = i;
318+
int value = data[i];
319+
while(index > 0 && data[index-1] > value){
320+
data[index] = data[index-1];
321+
index--;
322+
}
323+
data[index] = value;
324+
}
325+
}
326+
else if(Order.equals("des")){
327+
for(int i=1; i<length; i++){
328+
int index = i;
329+
int value = data[i];
330+
while(index > 0 && data[index-1] < value){
331+
data[index] = data[index-1];
332+
index--;
333+
}
334+
data[index] = value;
335+
}
336+
}
337+
}
338+
339+
340+
/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
341+
------------------------ Binary Search --------------------------
342+
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
343+
public int Search(int item){
344+
return BinarySearch(0, length, item);
345+
}
346+
/* Binary Search functionality */
347+
private int BinarySearch(int start, int stop, int item){
348+
if(Order.equals("asc")){
349+
while(start<=stop){
350+
int mid = start + (stop-start)/2;
351+
if(data[mid] == item)
352+
return mid;
353+
else if(data[mid] < item)
354+
start = mid+1;
355+
else
356+
stop = mid - 1;
357+
}
358+
}
359+
else if(Order.equals("des")){
360+
while(start<=stop){
361+
int mid = start + (stop-start)/2;
362+
if(data[mid] == item)
363+
return mid;
364+
else if(data[mid] > item)
365+
start = mid+1;
366+
else
367+
stop = mid - 1;
368+
}
369+
}
370+
return -1;
371+
}
372+
}

0 commit comments

Comments
 (0)