如何在未排序数组中搜索、插入和删除

2025年3月17日 | 阅读 7 分钟

本文讨论了一个在未排序数组上执行搜索、插入和删除操作的代码。

搜索操作

对于未排序数组,搜索操作可以通过从第一个元素到最后一个元素的线性遍历来完成。

How to Search, Insert, and Delete in an Unsorted Array

搜索操作的编程实现

C 语言

输出

Element Found at Position: 4

C++ 程序

输出

Element Found at Position: 4

Java

输出

Element Found at Position: 4
  • 时间复杂度为 O(N)。
  • 辅助空间将为 O(1)。

插入操作

1. 插入到末尾

在未排序数组中,插入操作比在已排序数组中更快,因为我们不必担心插入元素的具体位置。

How to Search, Insert, and Delete in an Unsorted Array

插入操作的编程实现

C 语言

输出

Before Insertion: 22 26 30 50 60 80 
 After Insertion: 22 26 30 50 60 80 34

C++ 程序

输出

Before Insertion: 22 26 30 50 60 80 
 After Insertion: 22 26 30 50 60 80 34

Java

输出

Before Insertion: 22 26 30 50 60 80 
 After Insertion: 22 26 30 50 60 80 34
  • 时间复杂度为 O(1)。
  • 辅助空间将为 O(1)。

2. 插入到任意位置

通过将目标位置右侧的元素向右移动,可以在数组中的任意位置执行插入操作。

How to Search, Insert, and Delete in an Unsorted Array

插入操作的编程实现

C 语言

输出

Before insertion : 1 3 5 7 4 
After insertion : 1 3 5 9 7 4

C++ 程序

输出

Before insertion : 1 3 5 7 4 
After insertion : 1 3 5 9 7 4

Java

输出

Before insertion : 1 3 5 7 4 
After insertion : 1 3 5 9 7 4
  • 时间复杂度为 O(N)。
  • 辅助空间将为 O(1)。

删除操作

通过线性搜索找到要删除的元素,然后执行删除操作,并重新定位元素。

How to Search, Insert, and Delete in an Unsorted Array

删除操作的编程实现

C 语言

输出

Array before deletion
20 60 40 50 30 
Array after deletion
20 60 50 30

C++ 程序

输出

Array before deletion
20 60 40 50 30 
Array after deletion
20 60 50 30

Java

输出

Array before deletion
20 60 40 50 30 
Array after deletion
20 60 50 30
  • 时间复杂度为 O(N)。
  • 辅助空间将为 O(1)。