C 语言从数组中删除重复元素

2024年8月28日 | 阅读 8 分钟

本节将讨论在C语言编程语言中从数组中移除或删除重复元素。当相同的元素在已排序或未排序的数组中出现时,数组的元素就称为重复元素。我们需要删除这些重复元素或相同的数字,以使结果数组包含唯一元素。

例如,有一个整型数组 arr[10],其中包含 { 5, 8, 3, 3, 5, 9} 元素。在这个数组中,3 和 5 各出现了两次。因此,这些是重复元素。所以,从数组 arr[] 中删除重复元素后,我们得到 5, 8, 3, 9 元素。

从未排序数组中删除重复元素的步骤

步骤 1:从用户那里输入数组大小并将其存储在 size 变量中。

步骤 2:使用 for 循环读取数组元素并将其存储在 arr[i] 变量中。

步骤 3:要从数组中获取重复元素,我们需要使用两个 for 循环。第一个循环从 0 到 size。循环结构是:for (i = 0; i < size; i++)。

另一个循环选择数组中的每个元素,并将其与相应元素进行比较以获取重复元素。内部循环的结构是:for (j = i + 1; j < size; j++),找到后续相同元素的代码是:if (arr[i] == arr[j])。

步骤 4:如果遇到任何重复元素,则从数组中删除该重复元素,并将数组的大小减 1,即 size = size - 1。

步骤 5:之后,打印数组中的唯一元素,代码如下:

示例 1:从数组中删除重复元素的程序

让我们举一个例子,在 C 语言编程语言中删除数组中的相同数字或重复元素。

当我们在 C 编译器中执行上述程序时,它会在控制屏幕上产生如下输出。

Define the number of elements in an array: 10

 Enter 10 elements of an array:
 57
12
89
32
62
12
89
35
67
75

 Array elements after deletion of the duplicate elements:  57    12      89      32      62      35      67      75

从已排序数组中删除重复元素

假设我们有一个给定的已排序数组,任务是从数组中删除相同的元素。例如,有一个整型数组,大小为 5,包含 arr[] = {2, 2, 3, 3, 5} 元素。在这个已排序数组中,2 和 3 这两个数字各出现两次。因此,这些是重复元素。所以,从数组 arr[] 中删除重复元素后,我们得到 2, 3, 5 元素,数组的新大小为 3。

从已排序数组中删除重复元素的算法

以下是在 C 语言编程语言中从已排序数组中删除重复数组元素的算法。

  1. 定义数组元素的大小。
  2. 从用户那里读取数组元素。
  3. 从 i = 1 重复到 num。
    1. if (arr[i] != arr [i + 1]
    2. temp [j++] = arr[i]
    3. temp [j++] = arr[n- 1]
    4. 从 i = 1 重复到 j
    5. arr[i] = temp[i]
    6. arr [i] = temp [i]
    7. 返回 j。
  4. 打印数组中的唯一元素。

示例 2:使用用户定义函数从已排序数组中删除重复元素的程序

让我们举一个例子,在 C 语言编程语言中从已排序数组中删除相同的数字或重复元素。

当我们在 C 编译器中执行上述程序时,它会在控制屏幕上产生如下输出。

Define the no. of elements of the array: 10
 Enter the elements: 5
6
6
7
8
8
9
10
11
11

 Elements before removing duplicates:  5 6 6 7 8 8 9 10 11 11
 Display array's elements after removing duplicates:  5 6 7 8 9 10 11

示例 3:使用指针从数组中删除重复元素的程序

让我们举一个例子,在 C 语言编程语言中使用指针删除重复元素并打印唯一的数组元素。

当我们在 C 编译器中执行上述程序时,它会在控制屏幕上产生如下输出。

Define the size of the array element: 10

 Enter the elements of the array:
5
5
6
7
7
8
8
9
10
11
 After removing the duplicate elements:  5       11      6       7       10      8       9

示例 4:通过为相同元素创建单独的索引来从已排序数组中删除重复元素

让我们举一个例子,在 C 语言编程语言中,通过为相同数量的元素/索引创建额外空间来显示已排序数组中的唯一元素。

当我们在 C 编译器中执行上述程序时,它会在控制屏幕上产生如下输出。

Display the unique elements from the sorted array:
  5      10      15      20      25      30

下一个主题C语言泛型链表