areal's profileiamcrfBlogLists Tools Help

Blog


    June 25

    快速排序vs.冒泡排序

    最近两个星期的时间,我被chinese gigaword corpus的处理难住了:我原来的程序居然不能正确处理超过一亿汉字的文本,每次都在几分钟甚至几个小时后崩溃。硬邦邦的linux只会报告segment fault。不知道问题出在哪里。
    昨天的时候灵机一动,会不会是数据太大,导致表示指标的数据类型越界了?看了下,果然是用的是int型,改成unsigned long型,居然跑通了几个。继续检查剩下的几个segment fault,发现问题出在快速排序那一段,因为用了递归函数,不知道哪里有问题,今天临时改为冒泡排序,再也没有segment fault了。但是出了新问题:到现在为止,一个原来15分钟quick sort掉的样本集(包含1.2亿汉字),几个小时都没有冒泡完。