<一>java数据结构与算法 数组

来源:互联网 发布:淘宝黑兔充值可靠么 编辑:程序博客网 时间:2024/04/29 01:51

java数据结构与算法  数组<一>

<span style="font-size:18px;">public class MyOrderArray {private long[] arr;//表示有效数据的长度private int elements;public MyOrderArray() {arr = new long[50];}public MyOrderArray(int maxsize) {arr = new long[maxsize];}/** * 添加数据 */public void insert(long value) {int i;for(i = 0; i < elements; i++) {if(arr[i] > value) {break;}}for(int j = elements; j > i; j--) {arr[j] = arr[j - 1];}arr[i] = value;elements++;}/** * 显示数据 */public void display() {System.out.print("[");for(int i = 0; i < elements; i++) {System.out.print(arr[i] + " ");}System.out.println("]");}/** * 查找数据 */public int search(long value) {int i;for(i = 0; i < elements; i++) {if(value == arr[i]) {break;}}if(i == elements) {return -1;} else {return i;}}/** * 二分法查找数据 */public int binarySearch(long value) {int middle = 0;int low = 0;int pow = elements;while(true) {middle = (pow + low) / 2;if(arr[middle] == value) {return middle;} else if(low > pow) {return -1;} else {if(arr[middle] > value) {pow = middle - 1;} else {low = middle + 1;}}}}/** * 查找数据,根据索引来查 */public long get(int index) {if(index >= elements || index < 0) {throw new ArrayIndexOutOfBoundsException();} else {return arr[index];}}/** * 删除数据 */public void delete(int index) {if(index >= elements || index < 0) {throw new ArrayIndexOutOfBoundsException();} else {for(int i = index; i < elements; i++) {arr[index] = arr[index + 1];}elements--;}}/** * 更新数据 */public void change(int index, int newvalue) {if(index >= elements || index < 0) {throw new ArrayIndexOutOfBoundsException();} else {arr[index] = newvalue;}}}</span><pre name="code" class="java"><span style="font-size:18px;">public class TestMyOrderedArray {public static void main(String[] args) {MyOrderedArray moa = new MyOrderedArray();moa.insert(1);moa.insert(787);moa.insert(123);moa.insert(45);moa.insert(4);moa.display();System.out.println(moa.find(123));System.out.println(moa.binaryFind(123));}}</span>



0 0