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时间 猜您想看
-
如何在 Edge 浏览器上添加收藏夹,轻松管理您的网址。
在Edge浏览...
2023年04月15日 -
项目maven打包时报错Mapped Statements collection does not contain value for的解决方法
一、报错Map...
2023年05月26日 -
如何在 OpenWrt 中使用代理 DHCP?
如何在Open...
2023年04月17日 -
Nodejs中process.cwd()与__dirname的区别是什么
1、proce...
2023年05月22日 -
zookeeper的基本原理介绍
一、什么是Zo...
2023年05月25日 -
如何解析nuget nuspec清单
如何解析nug...
2023年07月04日