commit 80c493add47282ec59af96e68ff171dd65f28352 Author: Bo Pan Date: Wed Jun 4 14:23:56 2025 -0600 initial commit as a maven project diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..e1fc4e4 --- /dev/null +++ b/pom.xml @@ -0,0 +1,16 @@ + + + 4.0.0 + + com.barrx.practice + dspractice + 1.0-SNAPSHOT + + + 17 + 17 + + + \ No newline at end of file diff --git a/src/main/java/com/barrx/practice/Main.java b/src/main/java/com/barrx/practice/Main.java new file mode 100644 index 0000000..536f568 --- /dev/null +++ b/src/main/java/com/barrx/practice/Main.java @@ -0,0 +1,39 @@ +package com.barrx.practice; + +public class Main { + public static void main(String[] args) { + // System.out.println("Hello world!"); + + int maxSize = 100; + OrderedArray arr; + + arr = new OrderedArray(maxSize); + + arr.insert(77); + 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); + + int searchKey = 55; + if (arr.find(searchKey) != arr.size()) { + System.out.println("Found " + searchKey); + } + else { + System.out.println("Can't find " + searchKey); + } + + arr.display(); + + arr.delete(00); + arr.delete(55); + arr.delete(99); + + arr.display(); + } +} \ No newline at end of file diff --git a/src/main/java/com/barrx/practice/OrderedArray.java b/src/main/java/com/barrx/practice/OrderedArray.java new file mode 100644 index 0000000..2e27285 --- /dev/null +++ b/src/main/java/com/barrx/practice/OrderedArray.java @@ -0,0 +1,75 @@ +package com.barrx.practice; + +public class OrderedArray { + private long[] a; + private int nElems; + + public OrderedArray(int max) { + a = new long[max]; + nElems = 0; + } + + public int size() { + return nElems; + } + + public int find(long searchKey) { + int lowerBound = 0; + int upperBound = nElems - 1; + int curIn; + + while (true) { + curIn = (lowerBound + upperBound) / 2; + if (a[curIn] == searchKey) { + return curIn; + } + else if (lowerBound > upperBound) { + return nElems; + } + else { + if (a[curIn] < searchKey) { + lowerBound = curIn + 1; + } + else { + upperBound = curIn - 1; + } + } + } + } + + public void insert(long value) { + int j; + + for (j = 0; j < nElems; j++) { + if (a[j] > value) { + break; + } + } + for (int k = nElems; k > j; k--) { + a[k] = a[k - 1]; + } + a[j] = value; + nElems++; + } + + public boolean delete(long value) { + int j = find(value); + if (j == nElems) { + return false; + } + else { + for (int k = j; k < nElems; k++) { + a[k] = a[k + 1]; + } + nElems --; + return true; + } + } + + public void display() { + for (int j = 0; j < nElems; j++) { + System.out.print(a[j] + " "); + } + System.out.println(""); + } +} diff --git a/target/classes/com/barrx/practice/Main.class b/target/classes/com/barrx/practice/Main.class new file mode 100644 index 0000000..edfedef Binary files /dev/null and b/target/classes/com/barrx/practice/Main.class differ diff --git a/target/classes/com/barrx/practice/OrderedArray.class b/target/classes/com/barrx/practice/OrderedArray.class new file mode 100644 index 0000000..8f96e1c Binary files /dev/null and b/target/classes/com/barrx/practice/OrderedArray.class differ