算法问题一: 利用蛮力法删除数组中的重复元素

本文探讨如何设计一个算法,针对数组r[n],在删除重复元素的同时,尽可能减少元素移动次数并保持相对次序。通过伪代码和C++实现详细解释了算法流程,其时间复杂度为O(n^2),空间复杂度为O(1)。
摘要由CSDN通过智能技术生成

[问题]设计算法,在数组r[n]中删除重复的元素,要求移动元素的次数较少并使剩余元素的相对次序

一、代码部分

1.算法的伪代码描述

  1. 使用rand函数随机生成数组中的元素
     r[i] = rand() % RANDS ;
    
    关于rand函数怎么使用,这里不再赘述。
  2. 处理数组时设置标志变量flag,当查询到数组中有元素与比对元素相同时,令flag为1,标记该元素的位置,并退出循环

  

 for (i = 0; i < n; i++)

         {

             com++;

             if (r[j] == r[i])

                  flag = 1; //相同

         }

         if (flag == 0)  //不同

         {

             j++;

             n++;

         }

         else

         {

             pos = j;

             break;

         }

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值