怎么找到一个数组前面的不重复的最小值!

作者:超级管理员 更新时间:2017-11-01 08:58:53 来源:未知 点击:15642
/* 找最小的前3个不重复的数字*/#includeusing namespace std;int a[6] = { 6,3,2,5,4,1 };int main(){int mi


/* 找最小的前3个不重复的数字*/
#include<iostream>
using namespace std;
int a[6] = { 6,3,2,5,4,1 };
int main()
{
int min = 100, aa[6] = {0},MIN[3], i;   //aa[6]是一个标记数组,分配好了就让其自增为1
for (int i = 0;i < 6;i++)
if (a[i] < min)
{
min = a[i];
aa[i]++;
}

return 0;

}

冒泡排序找到最小的的三个数就且不重复就停止

如果数组容量大,排序就很占用时间。不通过排序,找到几个其中不重复的最小值,

前三个先放到临时变量
然后遍历  有更小的就替换掉


/* 找最小的前3个不重复的数字*/
#include<iostream>
using namespace std;
int a[6] = { 6,3,2,5,4,1 };
int main()
{
int min = 100, aa[6] = { 0 }, MIN[3] = {0}, i;   //aa[6]是一个标记数组,分配好了就让其自增为1
for (int j=0;j<3;j++)

for (int i = 0;i < 6;i++)

if (a[i] < min)
{
min = a[i];
MIN[j] = a[i];
aa[i]++;
}

}
for (int j = 0;j < 3;j++)
cout << MIN[j] << endl;
return 0;

}



怎么还是没有找到三个最小的值。

引用 2楼我是你的主体 的回复:
如果数组容量大,排序就很占用时间。不通过排序,找到几个其中不重复的最小值,
排序找到最小的三个就结束-所以不会太耽误时间-个三个临时复制一样的思路

排序就很简单,问题是现在不排序


/* 找最小的前3个不重复的数字*/
#include<stdio.h>
#include<iostream>
using namespace std;
int a[6] = { 6,3,2,5,4,1 };
int main()
{
int i=0,j,middle ,min = 100, aa[6] = { 0 }, MIN[3];   //aa[6]是一个标记数组,分配好了就让其自增为1
for (j = 0;j < 3;j++)
{
for (i = 0;i < 6;i++)
if (aa[i]==0)
if (a[i] < min)
{
min = a[i];
middle = i;
}
MIN[j] = middle;
aa[middle] = 1;
}

}

这个为什么选出来的是都是几个重复的数字

#include<iostream>
#include <cmath>
using namespace std;

int a[6] = { 6,3,2,5,4,1 };

int get_min(int *arr, int len);

int main(void)
{
    int min = 100, tmp, MIN[3];
    int i, j;

    MIN[0] = get_min(a, 6);
    for (i = 0; i < 2; i++) {
        for (j = 0; j < 6; j++) {
            tmp = a[j] - MIN[i];
            if (tmp > 0 && tmp < min) {
                min = tmp;
                MIN[i+1] = a[j];
            }
        }
        min = 100;
    }

    for (i = 0; i < 3; i++)
        cout<<MIN[i]<<endl;
    return 0;

}


int get_min(int *arr, int len)
{
    int i, min;

    min = arr[0];
    for (i = 1; i < len; i++)
        if (arr[i] < min)
            min = arr[i];

    return min;
}

如果要的是最小三个不重复的数,那楼上的就已经解决了你的问题。

推荐阅读

热门内容

麻烦帮看一下这些警告是什么意思

才学c语言,这是我的作业,输入3个字符,...

VS2010新建IT++工程时报错,求指

修复或重装VS2010没用,2013也试...

调用realloc函数后除了第一个其他全

#include #...

往byte数组拷贝二进制图像数据之后,数

运行到拷贝数据这段时这是读到的图像代码大...

C语言问题求助 求知道这种方式的人给解释

说清楚点吧  我这是常用算法程序集(C/...

已知两条直线和鼠标所在点,求经过鼠标所在

计算公式是有的,但是不同与我们手动计算用...

位数组问题 c和指针第5章第4道题

题目要求主函数是自定义的有两个问题:第一...

用Qt graphics view实现许

这个效果不错,关注。...

无GPU下win764+vs2013安装

在编译build_cpu_only中的M...

cppcms-1.0.5 windows

本帖最后由lovton于2017-10-...

最新内容

怎么找到一个数组前面的不重复的最小值!

/* 找最小的前3个不重复的数字*/#includeusin...

怎么通过数组标记找到前几个不重复的最小值?

/* 找最小的前3个不重复的数字*/#includeusin...

初学菜鸟,求教,我的递归哪儿出错了,总是没显示不出结果

#include#includeusing ...

想问一下这个代码为什么不正确,关于两个一元多项式链表相乘的问题,还有一个问题就是下面还有一个关于两个交集的问题我的代码应该怎么修改

Polynomial Multiply( Polynomial a, Polyn...

麻烦帮看一下这些警告是什么意思

才学c语言,这是我的作业,输入3个字符,输出他们组成的三位数直接用scanf就可...

怎么让 android EditText hint 不换行

两个问题:1. 当提示文本比较多的时候,hint文本会换行,虽然EditText...

vivo X20Plus评测:有了它iPad更没市场

续航:双引擎快充着实给力 五小时测试耗电剩余52%    而续航部分vivo X...

vivo X20Plus评测:有了它iPad更没市场

性能:性能十分稳定 控热较稳    vivo X20Plus采用高通晓龙660移...

vivo X20Plus评测:有了它iPad更没市场

系统:《王者荣耀》站场 力夺游戏掌机霸主   系统方面,vivo X20搭载了基...

vivo X20Plus评测:有了它iPad更没市场

屏幕:全面屏也具备高贵血统    vivo X20Plus的全面屏尺寸为6.43...

vivo X20Plus评测:有了它iPad更没市场

拍照:美的基础上 保留清晰不失自然    拍照方面,vivo X20Plus采用...

vivo X20Plus评测:有了它iPad更没市场

棚拍:数据不会说谎 色彩还原度表现优异    照片的本质离不开分辨解析力、色彩取...

13家手机联合打call 爆款好机友电视果

    当今,手机已然成为大多数消费者除生存物质条件以外的必要精神需求。除了拥有...

雷蛇首款手机将发 8GB内存4000mAh电池

    中关村在线消息:今天有消息称,游戏外设制造商Razer(雷蛇)透露将于1...

iPhone 8 Plus双11热卖 人像模式无敌

    中关村在线消息:iPhone 8 Plus作为iPhone 7 Plus...

不惧iPhoneX畅销 京东热门手机TOP10

    中关村在线市场资讯: 近日,iPhone X开启预购后,火爆程度简直和过...

vivo X20Plus评测:有了它iPad更没市场

    【中关村在线】vivoX20Plus评测:最近小米平板在其官方网站下架,...

京东手机11.11购物节 moto z惊爆价2499

    中关村在线消息:对于用户来说,手机独特的产品特点,不仅代表着一个人的品位...

科技6点半:三星Q3利润暴涨/一加5T曝光

    科技6点半,带您快速浏览今天手机行业发生的大事,每天18点30分准时送出...

swing 判断单选框问题

    鼓动鼓动 swing  用的 windowbuilder 来进行设计的,...