Advertisement
Samuel_Berkat_Hulu

OrdeArray

Mar 29th, 2021
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.51 KB | None | 0 0
  1. class OrdArray
  2.  {
  3.  private long[] a; // ref to array a
  4.  private int nElems; // number of data items
  5.  public OrdArray(int max) // constructor
  6.  {
  7.  a = new long[max]; // create array
  8.  nElems = 0;
  9.  }
  10.  public int size()
  11.  { return nElems; }
  12.  public int find(long searchKey)
  13.  {
  14.  int lowerBound = 0;
  15.  int upperBound = nElems-1;
  16.  int curIn;
  17.  while(true)
  18.  {
  19.  curIn = (lowerBound + upperBound ) / 2;
  20.  if(a[curIn]==searchKey)
  21.  return curIn; // found it
  22.  else if(lowerBound > upperBound)
  23.  return nElems; // can't find it
  24.  else // divide range
  25.  {
  26.  if(a[curIn] < searchKey)
  27.  lowerBound = curIn + 1; // it's in upper half
  28.  else
  29.  upperBound = curIn - 1; // it's in lower half
  30.  } // end else divide range
  31.  } // end while
  32.  } // end find()
  33.  public void insert(long value) // put element into array
  34.  {
  35.  int j;
  36.  for(j=0; j<nElems; j++) // find where it goes
  37.  if(a[j] > value) // (linear search)
  38.  break;
  39.  for(int k=nElems; k>j; k--) // move bigger ones up
  40.  a[k] = a[k-1];
  41.  a[j] = value; // insert it
  42.  nElems++; // increment size
  43.  } // end insert()
  44.  public boolean delete(long value)
  45.  {
  46.  int j = find(value);
  47.  if(j==nElems) // can't find it
  48.  return false;
  49.  else // found it
  50.  {
  51.  for(int k=j; k<nElems; k++) // move bigger ones down
  52.  a[k] = a[k+1];
  53.  nElems--; // decrement size
  54.  return true;
  55.  }
  56.  } // end delete()
  57.  public void display() // displays array contents
  58.  {
  59.  for(int j=0; j<nElems; j++) // for each element,
  60.  System.out.print(a[j] + " "); // display it
  61.  System.out.println("");
  62.  }
  63.  } // end class OrdArray
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement