initial commit as a maven project
This commit is contained in:
commit
80c493add4
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.barrx.practice</groupId>
|
||||
<artifactId>dspractice</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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("");
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue