首页 > 其他 > 详细

13:整数去重(1.9)

时间:2016-02-18 19:50:31      阅读:203      评论:0      收藏:0      [点我收藏+]

分析:

方法1:先使用数组a记录,然后使用双重循环逐个比较,把不重复的数值记录到b中。时间复杂度O(n^2)(n=10000)超时;

方法2:先使用数组a记录,然后对数组进行排序。扫描一遍a,使用b数组记录不重复的数值.

  STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件<algorithm>和using namespace std;

     sort函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是[a,b)。简单来说,有一个数组int a[100],要对从a[0]到a[99]的元素进行排序,只要写sort(a,a+100)就行了,默认的排序方式是升序。

技术分享
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[21000],b[21000];
int main(){
    int x,y,n,maxn=-1,num=1,t=0;
    scanf("%d",&n);
    for(int i=0;i<=n-1;i++)    scanf("%d",&a[i]);
    sort(a,a+n);
    b[0]=a[0];
    for(int i=1;i<n;i++)    
        if (a[i]==a[i-1]);
        else {
            t++;b[t]=a[i];
        }
    for(int i=0;i<=t-1;i++) printf("%d ",b[i]);
    printf("%d\n",b[t]);            
    return 0;
}
View Code

 

13:整数去重(1.9)

原文:http://www.cnblogs.com/ssfzmfy/p/5198955.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!