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时间 猜您想看
-
elasticsearch文档操作的方法有哪些
1.新增文档E...
2023年05月26日 -
如何才能学好SEO
一、学习资料的...
2023年05月22日 -
如何理解Java容器中Map的源码分析
一、Map源码...
2023年05月26日 -
如何使用Cookie模拟登录浏览网页和资源
1.什么是Co...
2023年05月25日 -
java中需要进行线程中断的场景有哪些
1、线程死循环...
2023年05月25日 -
DefaultAdvisorAutoProxyCreator的具体作用是什么
Default...
2023年07月23日