Data Structures & Algorithms Lecture Notes

26 September 2010 • Reproducing Code


Outline

Background

Quandry

Question

Experiment Protocol

Experiment Illustrated

Sample 1

public static bsearch(int a[], int x)
{
  for (int i, i ≤ a.length, i++)
  {
    if (a[i] = x)
      return i;
  }
    return -1
}

int bsearch(int a[], int x) {
  for (int i = 0; i ≤ a.length; i++) {
    if (a[i] = x)
      return i;
  }
  i = -1;
  return i;
  }

public static bsearch(int a[], int x)
{
  for (int i, i ≤ a.length; i++)
  {
    if (a[i] = x)
      return i
  }
  return -1
}

int bsearch(int a[], int x) {
  for (int i = 0; i ≤ a.length; i++) {
    if (a[i] = x)
      return i;
  }
  i = -1;
  return i;		      

unchangedunchanged

Sample 2

int bsearch(int a[], int x)
{
  for (int i = 0, i < a.length; i++)
  {
    if (a[i] == x)
      return i;
  }
  return -1;
}

int bsearch(int a[], int x)
  for i = 0, i ≤ a.length - 1, i++
    if a[i] = x
      return i
    else a[i] != x
      return -1

int bsearch(int a[], int x)
{
  for (int i = 0; i < a.length; i++)
  {
    if (a[i] == x)
      return i;
  }
  return -1;
}

int bsearch(int a[], int x)
{
  for (i = 0; i ≤ a.length - 1; i++)
  {
    if (a[i] == x)
    {
      return i;
    }
    return -1;
  }
}

unchangeddifferent

Sample 3

int search(int array[], int x)
  if (array[i] = x)
    return i;
  else if (array[i] =! x)
    return -1;

int bsearch(int a[], int x);
  if (a[i] = x)
    return i;
  else
    return -1;

int search(int a[], int x)
  if (a[i] = x)
    return i;
  else if (a[i] =! x)
    return -1;
  else
    return -1;

int bsearch(int a[], int x)
  if (a[i] = x)
    return i;
  if (a[i] != x)
    return -1;

differentdifferent

Sample 4

public int searchX(int a[], int x) [
int val = -1;
   for (int i = 0; i ≤ a.length; i++) [
    if (a[i] == x)
      val = i;
    ]
  return val; ]

for (int = i, i ≤ a.length, i++)
  if (int a[] int x) {
    return i;
  else
    return -1;
  }

public int searchX(int a[], int x) {
int val = -1;
  for (int i = 0; i ≤ a.length; i++) {
    if (a[i] == x)
      val = i;
    }
  return val;
}

for (int i = 0, i ≤ a.length, i++) {
  if (int i == x) {
    return value i;
    }
  return value -1;
  }

differentdifferent

Sample 5

public int bSearch(int a[], int x) {
  for (int i = 0; i < a[].length; i++) {
    if (a[i] = x)
      return i;
    else
      i++;
    if (x =! a[])
      return -1
    }
}

int bsearch(int a[], int x);
  if (
  return i;
  else
    return -1;

int bSearch(int x[], int x) {
for (int i = 0; i < a[].length; i++) {
  if (a[i] = x)
    return i;
  else
    i++;
  }
    return -1;
}

int bsearch(int a[], int x);
  for (i = 0; i++; x)
    if (
      return i;

differentdifferent

Sample 6

int bsearch(int [] a, int x) {
// assume sorted ascending
  for (i = 0; i < a.length -1; i++)
  {
    if (a[i] == x)
      return i
    else
      if (a[i] > x)
        return -1;
  }
    return -1;
}

binary search:
  int a[], int x, int i;
    if a[] = x
    return z;
      if x != 0
    return -1

int bsearch(int a[], int x)
{
  // assume a[] is sorted ascending
  for (i = 0; i < a.length -1 ; i++)
  {
    if (a[i] == x)
      return i
    else {
      if (a[i] > x)
        return -1; }
  }
  return -1;
}

int binary(int a[], int x);
{
  for (i = 0, i > 0, i++)
    { if a[] == x
        return x
      else
        a[] > x
        return -1
                 }
      return -1
    }

Sample 7

int search(array [], int x) {
  int length = array.length;
  for (int i = 0; i < length; ++i)
    if length[i] == x
      return i;
    else
      return -1;
  }

int bsearch(int a[], int i) {
  if (x == a[i])
    return i;
  else
    { i = -1;
      return i; }
                 }

int public search(array [], int x) {
  int length = array.length;
  for (int i = 0; i < length; ++i) {
    if (length ≥ 0) {
      if array[i] == x;
        return i;
      else
        return -1;
    }
    else
      return "empty array";
  }
}

int bsearch(int a[], int z) {
  int length = array.length;
  for (int i = 0; i < length, i++) {
    if (x == a[i])
      return i;
    if (a[i] == null)
      return -1;
    else
      return -1; }
                  }

differentdifferent

Results

Other Observations

P1P2P3P4P5P6P7P8 P9P10P11P12P13P14
Q 1
Q 2
Q 3

Error Counts

ErrorCount
non-looping code*5
indexing exception4
uninitialized index3
truncated iterations3
wrong return value1
early termination1
skipping elements1

Revised program counts, except *: 5 original, 1 revised.

Fence-Post Errors

Summary


This page last modified on 24 January 2010.

Creative
    Commons License