数组元素消除重复算法

动态演示数组去重算法的执行过程,展示如何删除重复元素并保留第一次出现的元素

算法原理

该算法用于消除数组中的重复元素,保留每个元素的第一次出现位置。

1. 初始化结果数组 b[],所有元素设置为原始数组的第一个元素 a[0]

2. 从原始数组的第二个元素开始遍历(索引 i=1)

3. 对于每个元素 a[i],检查它是否在结果数组 b[] 中已经存在

4. 如果不存在(计数为0),则将当前元素添加到结果数组的 ptr 位置,并递增 ptr

5. 最终,结果数组 b[] 的前 ptr 个元素即为去重后的数组

原始数组 a[]

结果数组 b[]

算法状态

当前步骤: 初始化
外层索引 i: 1
内层索引 j: 0
重复计数: 0
指针 ptr: 1
当前值 temp: -
演示速度 中速
正常元素
当前活动元素
正在比较元素
唯一元素(将添加)
重复元素(将跳过)
索引标记
算法核心代码
// 初始化结果数组
for (int i = 1; i <= x; i++) {
    b[i] = a[1];
}

int ptr = 2;

// 遍历原始数组
for (int i = 2; i <= x; i++) { 
    temp = a[i];
    count = 0;
    
    // 检查元素是否在结果数组中
    for (int j = 1; j <= x; j++) {
        if (temp == b[j]) {
            count++;                
        }
    }
    
    // 如果未找到重复,则添加到结果数组
    if (count == 0) {
        b[ptr] = a[i];
        ptr++;
    } 
}