您的位置:首页 > 编程语言

编程珠玑 第一章习题1

2012-06-25 22:41 330 查看
1.如果内存不紧缺,你将如果用一种语言(该语言可以使用库来表示和排序集合)来进行排序。

a.c语言+qsort

#include <stdio.h>

#include <stdlib.h>

int intcomp(int *x, int *y)

{   return *x - *y;

}

int a[1000000];

int main()

{   int i, n=0;

    while (scanf("%d", &a
) != EOF)

        n++;

    qsort(a, n, sizeof(int), intcomp);

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

        printf("%d\n", a[i]);

    return 0;

}

b.C++语言+sort

#include <vector>

#include <algorithm>

#include <functional> 

 #include <iostream> 

using namespace std;

int main(void){

    vector <int> v;

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

        v.push_back( rand() );

    sort( v.begin(), v.end() );

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

        cout << v[i] << endl;

    return 0;

}

c.使用set容器

#include <iostream>

#include <set>

using namespace std;

int main()

{

 set<int> S;  //STL容器内部采用红黑树作为排序数据结构

 int i;

 set<int>::iterator j;

 while(cin>>i)

  S.insert(i);

 for(j=S.begin();j!=S.end();++j)

  cout<<*j<<endl;

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息