Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

// insertSort.java // demonstrates insertion sort // to run this program: C>java InsertSortApp class ArrayIns { private long [] a; // ref to array a

// insertSort.java

// demonstrates insertion sort // to run this program: C>java InsertSortApp

class ArrayIns

{

private long[] a; // ref to array a

private int nElems; // number of data items

//--------------------------------------------------------------

public ArrayIns(int max) // constructor

{

a = new long[max]; // create the array

nElems = 0; // no items yet

}

//--------------------------------------------------------------

public void insert(long value) // put element into array

{

a[nElems] = value; // insert it

nElems++; // increment size

}

//--------------------------------------------------------------

public void display() // displays array contents

{

for(int j=0; j

System.out.print(a[j] + " "); // display it

System.out.println("");

}

//--------------------------------------------------------------

// HERE IS THE INSERTION SORT ALGORITHM

public void insertionSort()

{

int in, out;

for(out=1; out

{

long temp = a[out]; // remove marked item

in = out; // start shifts at out

while(in>0 && a[in-1] >= temp) // until one is smaller,

{

a[in] = a[in-1]; // shift item to right

--in; // go left one position

}

a[in] = temp; // insert marked item

} // end for

} // end insertionSort()

public long valueAt(int index)

{

return a[index];

}

public long median()

{

//Copy temp array and copy items

ArrayIns b = new ArrayIns(nElems);

for(int i = 0; i < nElems; i++)

b.insert(a[i]);

b.insertionSort();

if(b.nElems % 2 == 0) //If there are 2 middle numbers, return the average of them

{

int temp = b.nElems / 2;

long median = (b.valueAt(temp) + b.valueAt(temp-1) ) / 2;

return median;

}

else return b.valueAt(b.nElems/2);

}

//--------------------------------------------------------------

} // end class ArrayIns

////////////////////////////////////////////////////////////////

class InsertSortApp

{

public static void main(String[] args)

{

int maxSize = 100; // array size

ArrayIns arr; // reference to array

arr = new ArrayIns(maxSize); // create the array

arr.insert(77); // insert 10 items

arr.insert(99);

arr.insert(44);

arr.insert(55);

arr.insert(22);

arr.insert(88);

arr.insert(11);

arr.insert(00);

arr.insert(66);

arr.insert(33);

long medianValue = arr.median();

System.out.println(medianValue);

arr.display(); // display items

arr.insertionSort(); // insertion-sort them

arr.display(); // display them again

} // end main()

} // end class InsertSortApp

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Sybase Database Administrators Handbook

Authors: Brian Hitchcock

1st Edition

0133574776, 978-0133574777

More Books

Students also viewed these Databases questions