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时间 猜您想看
-
宝塔使用技巧:如何设置 Nginx 自定义日志
SEO软文:怎...
2023年05月08日 -
spark 3.0中如何实现查询计划
1、什么是查询...
2023年05月22日 -
iTOP3399开发板Debian系统如何设置开机自启动脚本
一、概述在A3...
2023年05月25日 -
Hadoop HBase单机环境怎么配置
一、HBase...
2023年05月26日 -
如何在 EmBlog 博客系统中设置阅读次数统计
:如何在 Em...
2023年04月15日 -
KubeBuilder的原理和作用是什么
KubeBui...
2023年05月26日