All pastes #344640 Raw Edit

Mine

public text v1 · immutable
·published 2007-02-07 22:01 UTC
rendered paste body
OOP

// OOP class for Lab 16
import chn.util.*;
import java.util.*;

public class Lab16OOP
{
    public Lab16OOP()
    {}

   // Sort an array of integers from smallest to largest, using a merge sort algorithm.
    public void mergesort(ArrayList<Integer> data, int first,int n)
   {
      int n1; // Size of the first half of the array
      int n2; // Size of the second half of the array

      if (n > 1)
      {
         // Compute sizes of the two halves
         n1 = n / 2;
         n2 = n - n1;

         mergesort(data, first, n1);      // Sort data[first] through data[first+n1-1]
         mergesort(data, first + n1, n2); // Sort data[first+n1] to the end

         // Merge the two sorted halves.
         merge(data, first, n1, n2);
      }
   } 
 
   // Precondition: data has at least n1 + n2 components starting at data[first]. The first 
   // n1 elements (from data[first] to data[first + n1 – 1] are sorted from smallest 
   // to largest, and the last n2 (from data[first + n1] to data[first + n1 + n2 - 1]) are also
   // sorted from smallest to largest. 
   // Postcondition: Starting at data[first], n1 + n2 elements of data
   // have been rearranged to be sorted from smallest to largest.
   // Note: An OutOfMemoryError can be thrown if there is insufficient
   // memory for an array of n1+n2 ints. 
   private void merge(ArrayList<Integer> data, int first, int n1, int n2)
   {
      ArrayList<Integer> temp = new ArrayList<Integer>(); // Allocate the temporary array
      int copied  = 0; // Number of elements copied from data to temp
      int copied1 = 0; // Number copied from the first half of data
      int copied2 = 0; // Number copied from the second half of data
      int i;           // Array index to copy from temp back into data
      // Merge elements, copying from two halves of                   data to the temporary array.
      while ((copied1 < n1) && (copied2 < n2))
      {
          if (data.get(first + copied1).intValue() < data.get(first + n1 + copied2).intValue())
	  {
             temp.add((copied++), data.get(first + (copied1++)));
         }
         	else
		{
	       		temp.add((copied++),data.get(first + n1 + (copied2++)));
		}	
	}
      // Copy any remaining entries in the left and right subarrays.
      while (copied1 < n1)
	{
         temp.add((copied++), data.get(first + (copied1++)));
	}
      while (copied2 < n2)
	{
         temp.add((copied++), data.get(first + n1 + ((copied2++))));
	}
      // Copy from temp back to the data array.
      for (i = 0; i < n1+n2; i++)
         data.set(first + i, temp.get(i));

   }
	public void two(ArrayList<Integer> data)
	{
		int i = 0;
		int tem;
		ArrayList<Integer> temp = new ArrayList<Integer>();
		while( i<data.size())
		{
			if(data.get(i) % 2 == 0)
			{
				tem=data.remove(i);
				temp.add(tem);
			}
			i++;
		}
	}
	
 }




// Client class for Lab 16
/*
           @Author: Nathan Siriyanonda
              Date: 2/2/07
           Teacher: Weiser
            Course: CSAPA
            Period: 3
             Lab #: 16
   Lab Description: 
*/
import chn.util.*;
import java.util.*;

public class Lab16Client
{
	public static ArrayList<Integer> fillArray()	
  	{
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
		String fileName = "T:\\ap cs a\\old stuff\\lab 13\\numfile.txt";
		FileInput file = new FileInput(fileName);

		arrayList.add(file.readInt());
		int i = 0;
		while(file.hasMoreTokens())
		{
			arrayList.add(file.readInt());	
		}
		return arrayList;
   	}
	public static void main(String[] args)
	{
		ConsoleIO input = new ConsoleIO();
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
		arrayList = fillArray();
		System.out.println(arrayList);
		System.out.println("Size is "+arrayList.size()+"\n");
		Lab16OOP poopy = new Lab16OOP();
		int length = arrayList.size();
		poopy.mergesort(arrayList, 0, length);
         	System.out.println(arrayList);
		System.out.println("Size is "+arrayList.size()+"\n");
		poopy.two(arrayList);
		System.out.println("\n"+arrayList);
		System.out.println("Size is "+arrayList.size()+"\n");
	}
}

/*          RUNNN

*/