C语言标准库函数 qsort 详解

2008年12月31日 11:15 . 分类 编程相关 . 2 条评论 . 被踩 51 次 

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。

函数原型:

void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );

用法以及参数说明:

Sorts the num elements of the array pointed by base, each element size bytes long, using the comparator function to determine the order.

The sorting algorithm used by this function compares pairs of values by calling the specified comparator function with two pointers to elements of the array.

The function does not return any value, but modifies the content of the array pointed by base reordering its elements to the newly sorted order.

base Pointer to the first element of the array to be sorted.(数组起始地址)
num Number of elements in the array pointed by base.(数组元素个数)
size Size in bytes of each element in the array.(每一个元素的大小)
comparator Function that compares two elements.(函数指针,指向比较函数)
1、The function must accept two parameters that are pointers to elements, type-casted as void*. These parameters should be cast back to some data type and be compared.
2、The return value of this function should represent whether elem1 is considered less than, equal to, or greater than elem2 by returning, respectively, a negative value, zero or a positive value.
Return Value none (无返回值)
阅读全文

格雷码(Gray Code) C语言 DFS版

2008年12月30日 20:13 . 分类 编程相关 . 没有评论 . 被踩 43 次 

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

Description

Gray code is an interesting code sequence and has many applications in computer science. No matter you have known it before or not, here are some introductions about its features:
(1) Gray code has 2^n unique elements;
(2) Each element contains n digits of 0 or 1;
(3) Each pair of adjacent elements has exactly one different digit.
For example, when n=2, one of the gray code sequence is: 00,01,11,10.
Now, the task is quite simple, given a positive integer n, generate the corresponding Gray code sequence.

Input

Input may contain multiple test cases. Each test case consists of one positive integer n(n<=16), Input is terminated by a case with n=0, which should not be processed.

Output

For each test case, output the corresponding Gray code sequence, one element per line. There may be multiple answers, any of them will be accepted. Please output a blank line after each test case.

Tips:注释很重要,很久以前的程序不加注释很容易看不懂...

输出N位前2^N个格雷码,因为每次只改变相邻的一个数,可以使用深度优先搜索,每次改变节点就好了。

#include <stdio.h>

int n;
char s[17];

void dfs(int i)
{
    if(i==n) printf("%s\n",s); //到达底部就输出
    else
    {
        dfs(i+1); //深度优先搜索
        if(s[i]=='0') s[i]='1';
        else s[i]='0'; //把当前位逆转
        dfs(i+1); //继续向下搜索
    }
}

int main()
{
    int i;
    while(1)
    {
        scanf("%d",&n);
        if(!n) break;
        for(i=0;i<17;i++) s[i]='0';
        s[n]='\0';
        dfs(0);
        printf("\n");
    }
    system("pause");
    return 0;
}

卓越买书《C++ Primer Plus(第五版) 中文版 》

2008年12月29日 12:38 . 分类 大学生活 . 10 条评论 . 被踩 108 次 

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

这个学期快结束了,C语言课也就该结束了,我也就不玩了...

C++是重点,所以提前把书买好吧。没选的,还是经典的《C++ Primer Plus 》,虽然原版书是最好的,可是俺现在的英文水平估计看不懂...所以还是看中文版好了。

以前买书选淘宝,这次选卓越。以前还以为卓越的书要运费,昨天宿友告诉我卓越是免运费的...我无语,居然不要运费,那当然选卓越了...

这次一下买了3本,有2个宿友也要,呵呵,估计到时候那个包裹会很沉...书的封面是深蓝色的,我喜欢,show一下...

【原 书 名】  C++ Primer Plus (5th Edition)
【原出版社】 SAMS
【作  者】(美)Stephen Prata
【译  者】 孙建春 韦强
【出 版 社】 人民邮电出版社
【书 号】 7115134162
【出版日期】 2005 年5月
【页 码】 788

屏蔽校内网"新鲜事"中的分享和投票

2008年12月25日 19:33 . 分类 大学生活 . 4 条评论 . 被踩 120 次 

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

校内网是个不错的地方,虽然我不玩校内,不过也在上面找到了以前的很多同学。

唯一不爽的就是每次一打开校内网进入"新鲜事"那里就会有N多"分享"和"投票"...想看看同学的状态还得一个个筛选,现在稍微好一点,可以直接选择状态看,不过对于我这种"懒仙"级别的人来说,这简直太累了...

一怒之下,我把校内网里所有的按钮都按了一次,终于找到了彻底屏蔽分享和投票的办法...

首先找到进入校内网看到的这个边栏,最下面有一个"设置",点击进入(如果以后改版了,方法也不便,就是进入应用设置)。

进入之后你会看到相关的栏目,点击"分享"后面的"设置",弹出对话框:

把那个"看到好友的新鲜事"前面的勾去掉,然后"保存修改",这样就搞定了!以后再也看不到那些烦人的"分享"了...

"投票"使用同样的方法处理,世界终于清净了...

刘墉也来北京师范大学珠海分校了

2008年12月21日 23:18 . 分类 大学生活 . 6 条评论 . 被踩 127 次 

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

12月21日,“刘墉——教你活出闪亮人生”讲座,在北京师范大学珠海分校励耘楼A111大教室举行。

我也去了,不过我没想着去坐哈,因为要座位就得早早去排队,我没那个耐心,而且我也不是刘墉狂热分子...所以我是6:30去的,那时队伍早已经排得很长很长了,而且A111里面也是人满为患,好不容易才找地方站下,嘿嘿。

“ 热狗冷猫.”这是刘墉对自己的评价。他用风趣的语言向大家介绍了一个独具个性的他。他说,每个动物都在进化,而人也应该进化,在自己年轻的时候多读些书,对脑进行全面开发。

不过就我感觉,刘墉的讲座没有俞敏洪的好,感觉他讲的太空洞了...

讲座后面基本上就已经成为卖书环节了...直接无视...

下午看了电影《鹰眼》(Eagle Eye)

2008年12月20日 21:42 . 分类 大学生活 . 7 条评论 . 被踩 153 次 

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

今天是全国大学英语四、六级考试的日子,无数大学生为其“抛头颅、洒热血”......

早晨打开电脑,联网,弹出了一个窗口:

接上级紧急通知: 今日9:00-11:30网络进行调整,中断所有网络服务,敬请谅解!

中午再次打开电脑,联网,又弹出一个窗口:

接上级紧急通知: 今日14:30-17:00网络进行调整,中断所有网络服务,敬请谅解!

学校为了CET-4和CET-6真是狠啊...

没辙,不让上网咱就看电影吧,Eagle Eye。

故事很老套,一个刚参加完哥哥葬礼的潦倒男人和一个刚送走孩子去上学的单身女子,分别接到了一个陌生手机,正由于男的经济上贫乏和女的在儿子上母爱的把柄落入了这通手机的控制之中,因此受控于此,参加一场场惊险的夺命之旅。而警方因为男主角哥哥的恐怖分子的身份将这次行动敏感地定义成反恐行动。

影片剧情走向的关键因素便是那支手机,影片中展示的许多电子媒介也成为重要道具。当男女主角在经过手机里下达的一个个命令并惊险完成后来到了手机提示的一个密室,四面墙上都是一个个液晶屏幕,里面播放着两人完整的生活资料,他们完全被这些放映着影像的电子媒介所控制并被威胁着,在这些影像面前他们呈现一种赤裸裸的精神状态。我想,电子媒介在充斥着我们生活,为我们生活服务的同时,很可能就将我们牢牢绑住并且从接受命令转化成向我们发布命令的统治者。

影片最令我震撼的片段就是主控电脑监听五角大楼底下密室里的对话,电脑居然利用水杯里的水震动产生的声波来传递人的对话。这虽然有科幻的成分在,但随着科技的发展,谁知到哪一天这会不会变成现实呢?到那个时候,人类还有隐私存在吗?

电影是接近现实的梦,那现实是否就是电影里反映的那样的呢?我想是的。我在大学宿舍里就深刻地体会到这一点。一些舍友沉迷于电脑的网络游戏,而对于真实的外界世界置之不理,体现在不理会游戏之外的各种信息包括学习的、生活的、就业的,忽视与其他人的正常人际交往。基本上放弃了外部世界,因为游戏的虚拟世界让他们有恃无恐甚至趾高气扬。我想,人与人的交往即使就像鹰眼里的男女主角在各种地点的那些接待他们进入下一个惊险任务的人表现出文明礼仪的外表下内心潜藏巨大阴谋一样令人可怕,也不应该逃避,因为人是离不开社会的。

电影和现实都在提醒我们:随着人工智能的发展,在对人类恐怖分子进行反恐的同时,也要提高对电子媒介的反恐意识。

 1 2 3 4 下一页
关闭
E-mail It