c语言数组去重

news/2024/10/18 2:40:30/

今天在做题的时候需要用的数组去重的算法,本人又太懒,在网上看到有标准库函数来解决这个问题,今天和大家分享一下。这个神奇的函数就是unique函数,现在我们来介绍一下unique函数-----
**unique函数

类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素。

该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值**
现在我们看看怎么具体使用这个函数

#include<iostream>
#include<algorithm>//unique所在的头文件
using namespace std;
int main()
{int a[10] = {1,1,1,2,3,4,5,5,3,2};sort(a,a+10);//因为unique是去除相邻的相邻的重复元素,所以我们要先排序int n = unique(a,a+10) - a;//排序后的数值长度for(int i=0;i<n;i++)//遍历整个数组{cout<<a[i]<<" ";}return 0;
} 

今天想了想人生不能那麽坠落呀!于是自己琢磨了几种去重的算法,几天和大家分享一下。
再次更新
第一种版本,比较low,但容易理解

#include<stdio.h>
int main()
{int a[10] = {1,1,1,2,3,4,5,5,3,2};int b[10];int count = 0;for(int i=0;i<10;i++){int k = a[i];int flag = 1;for(int j=i+1;j<10;j++){if(k==a[j]){flag = 0;break;}}if(flag==1){b[count++] = k;}else{continue;}}a[10] = {0};for(int i=0;i<count-1;i++){a[i] = b[i];printf("%d",a[i]);}return 0;
}

第二种版本

#include<stdio.h>
int main()
{int a[] = {1,2,1,4,2,1,4,2,4,3,5,2,3,5,3,2,2,5,3,1,1,1};//int b[n];int n = sizeof(a)/sizeof(a[0]);//求数组的长度//int count = 0;for(int i=0;i<n;i++){int k = a[i];for(int j=i+1;j<n;j++){if(k==a[j])//判断数组中是否有重的元素{for(int k=j;k<n-1;k++){a[k] = a[k+1];} n--;j--;//这一步非常重要,没有的话部分结果就会不正确}}}for(int i=0;i<n;i++){printf("%d ",a[i]);}return 0;
}

http://www.ppmy.cn/news/149448.html

相关文章

从S12系列看vivo的高端进阶

12月22日&#xff0c;vivo S12系列新品正式发布。作为新一代先锋影像旗舰&#xff0c;vivo S12系列影像、性能、设计全面升级&#xff0c;全面出色。 从自拍旗舰到全面出色的先锋影像旗舰&#xff0c;vivo S系列的格局进一步被打开。 01 vivo S系列的进化之路 vivo S系列的…

vivoy67Android7升级包,vivoy67刷机包

vivoy67刷机包免费版是专为y67型号的步步高vivo手机所打造了,有了本工具以后,你就可以非常轻松的对手机进行各种刷机操作了,以后都再也不用担心手机会卡死了! vivoy67刷机包最新版亮点 -优化手机音频体验 -优化手机系统整体性能,提升流畅度 -优化手机更新手机管家版本 -优…

华为OD机试真题B卷 Java 实现【分奖金】,附详细解题思路

一、题目描述 公司老板做了一笔大生意&#xff0c;想要给每位员工分配一些奖金&#xff0c;想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序&#xff0c;每个人随机抽取一个数字。按照工号的顺序往后排列&#xff0c;遇到第一个数字比自己数字大的&#xff0c;那么…

文本三剑客

目录 文本三剑客 grep grep和egrep grep命令格式 grep命令格式 grep运用示例 正则表达式 基本正则表达式 拓展正则表达式 sed 使用sed sed用法示例 常用选项options示例 地址界定示例 编辑命令示例 sed高级编辑命令 awk awk的使用 printf命令 操作符 awk …

数据链路层:媒体接入控制

1.数据链路层&#xff1a;媒体接入控制 笔记来源&#xff1a; 湖科大教书匠&#xff1a;媒体接入控制的基本概念 湖科大教书匠&#xff1a;随机接入–CSMA/CD协议 湖科大教书匠&#xff1a;随机接入–CSMA/CA协议 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记…

CMMI2.0之我见-估算EST监督与控制MC

编者按&#xff1a; CMMI2.0之我见系列将通过系列文章形式介绍CMMI2.0所涉及到的其中20个实践域&#xff0c;笔者将通过系统性的梳理、浅显易懂的文字描述&#xff0c;同时结合笔者的思考和观点&#xff0c;对每个实践域的目标以及所基本涵盖的内容进行描述&#xff0c;希望能…

新国标电动自行车目录库

浙江&#xff1a;https://xzsp.zjidb.com/api/bicycle 上海&#xff1a;http://www.shbicycle.com/info.asp 北京&#xff1a;http://wfcxjk1.bjjtgl.gov.cn/fjdcml/fjdcListM.jsp 安徽&#xff1a;http://ddch.aqi.ah.cn/index_GB17761-1999.asp 3C查询&#xff1a;http://ccc…

北京市电动自行车产品目录 汇总查询

北京市市场监督管理局官网的查询服务&#xff1a; 北京市市场监督管理局-查询服务 左侧选择“电动自行车目录管理结果公示”