Java 数据结构之数组的操作二:数据插入与二分查找法
发布日期:2021-06-30 22:37:38 浏览次数:3 分类:技术文章

本文共 2728 字,大约阅读时间需要 9 分钟。

增加数据插入与二分查找法:

/** * @描述 数组的操作 * @项目名称 Java_DataStruct * @包名 com.java.array * @类名 ArrayDemo * @author chenlin * @date 2010年5月22日 下午3:45:49 * @version 1.0 */public class ArrayDemo2 {
private int[] arr; // 有效数据大小 private int len; public ArrayDemo2(int max) { arr = new int[max]; } /** * 初始化 */ public void init(int value) { arr[len] = value; len++; } /** * 在有顺序的数组插入 */ public void insert(int value) { int j; for (j = 0; j < len; j++) { //从这里可以获得j的值 if (arr[j] > value) { break; } } for (int i = len; i > j; i--) { arr[i]=arr[i-1]; } arr[j] = value; len ++; } /** * 列出 */ public void list() { for (int i = 0; i < len; i++) { System.out.print(arr[i] + " "); } System.out.println(); } /** * 查找 * * @param value */ public int search(int value) { int i; for (i = 0; i < len; i++) { if (arr[i] == value) { break; } } if (i == len) { return -1; } else { return i; } } /** * 使用二分查找法 * @param key */ public int binarySearch(int key){ int min = 0; int max = len; int index = 0; while(true){ index = (min + max)/2; if (arr[index] == key) { return index; }else if (min > max) { return -1; }else { if (arr[index] > key) { max = index - 1; }else { min = index + 1; } } } } /** * 删除 * * @param key */ public void delete(int key) { if (search(key) == -1) { System.out.println("not found"); } else { for (int i = search(key); i < len; i++) { arr[i] = arr[i + 1]; } } len --; list(); } /** * 修改 * * @param lastData * @param newData */ public void edit(int value, int newValue) { if (search(value) == -1) { System.out.println("not found"); } else { arr[search(value)] = newValue; } list(); } public static void main(String[] args) { ArrayDemo2 demo = new ArrayDemo2(20); for (int i = 0; i < 10; i++) { demo.init(i*i); } demo.insert(70); demo.list(); System.out.println("result1 = " + demo.search(-1)); System.out.println("result2 = " + demo.binarySearch(70)); demo.delete(25); demo.edit(81,200); }}

转载地址:https://lovoo.blog.csdn.net/article/details/51589923 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java 数据结构之数组的操作三:实现各种排序方法
下一篇:Android中注解详解,通过注解代替findViewById方法

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月21日 23时15分12秒