java如何实现有序数组
使用插入排序实现有序数组
插入排序是一种简单直观的排序算法,可以用来实现有序数组。它的基本思想是将数组分为已排序区和未排序区,每次从未排序区取出一个元素,将它插入已排序区的合适位置,直到未排序区被全部处理完。以下是通过插入排序实现有序数组的代码:
public class OrderedArray {
private int[] array;
private int size;
public OrderedArray(int maxSize) {
array = new int[maxSize];
size = 0;
}
public void insert(int value) {
int i;
for (i = size - 1; i >= 0; i--) {
if (array[i] > value) {
array[i + 1] = array[i];
} else {
break;
}
}
array[i + 1] = value;
size++;
}
public int find(int value) {
int low = 0;
int high = size - 1;
while (low <= high) {
int mid = (low + high) / 2;
if (array[mid] == value) {
return mid;
} else if (array[mid] < value) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
public boolean delete(int value) {
int index = find(value);
if (index != -1) {
for (int i = index; i < size - 1; i++) {
array[i] = array[i + 1];
}
size--;
return true;
}
return false;
}
}插入元素到有序数组
使用上述的OrderedArray类,可以通过调用insert方法将元素插入到有序数组中。以下是具体的步骤:
- 首先创建一个空的有序数组:
- 调用insert方法插入元素:
OrderedArray array = new OrderedArray(10); array.insert(5);
array.insert(3);
array.insert(7);
array.insert(1);
array.insert(9); 获取数组中的元素
可以通过调用find方法来获取有序数组中某个元素的索引位置。如果元素不存在,find方法将返回-1。以下是具体的使用步骤:
- 调用find方法查找元素:
- 判断找到的索引位置:
int index = array.find(3); if (index != -1) {
System.out.println("元素在数组中的索引位置为:" + index);
} else {
System.out.println("元素不存在数组中");
} 删除数组中的元素
可以通过调用delete方法从有序数组中删除某个元素。如果删除成功,delete方法将返回true;否则返回false。以下是具体的使用步骤:
- 调用delete方法删除元素:
- 判断删除是否成功:
boolean result = array.delete(7); if (result) {
System.out.println("元素删除成功");
} else {
System.out.println("元素不存在数组中,删除失败");
} 以上就是通过插入排序实现有序数组的方法,可以插入、查找和删除元素。有序数组的插入、查找和删除操作的时间复杂度均为O(n),其中n为数组的长度。
下一篇
SIM868中怎么获取NTP时间 猜您想看
-
HDFS oiv如何解析Fsimage OOM异常处理
如何解析HDF...
2023年07月21日 -
C++怎么实现基于OpenCV的DNN网络
1. 什么是O...
2023年05月26日 -
fastjson<=1.2.62远程代码执行漏洞的示例分析
漏洞背景Fas...
2023年07月22日 -
宝塔使用技巧:如何设置访问限制方式
如何在宝塔中设...
2023年05月08日 -
MySQL InnoDB索引的存储结构和分类
MySQL I...
2023年05月23日 -
基于OpenCV和Tensorflow的深蹲检测器是怎样的
什么是深蹲检测...
2023年07月22日