位图排序和qsort排序运行效率以及内存空间利用率的比较

一 排序运行效率比较(qsort函数vs位图排序)

step1:生成随机数组

为了排除因为随机数的不一样而引起的运行时间偏差,本次实验选用两组相同的随机数.

代码如下

位图排序和qsort排序运行效率以及内存空间利用率的比较

step2:通过qsort函数排序并打印这组随机数.

代码如下:

位图排序和qsort排序运行效率以及内存空间利用率的比较位图排序和qsort排序运行效率以及内存空间利用率的比较

执行

gcc qsort.c -o qsort -std=c99

time ./qsort

得到结果

位图排序和qsort排序运行效率以及内存空间利用率的比较

step3:通过自建位图排序这组数组.

代码如下:

位图排序和qsort排序运行效率以及内存空间利用率的比较

执行

gcc weitu.c -o weitu -std=c99

time ./weitu

得到结果

位图排序和qsort排序运行效率以及内存空间利用率的比较

可以看出通过位图排序效率要远高于qsort函数排序.

 

二 对于所占的内存空间比较

qsort需要更多的内存去存放进行比较的数据,在本次实验的虚拟机上将要排序的数组个数改成10000000后,执行时发生了段错误,超过了本虚拟机可用内存.

位图排序和qsort排序运行效率以及内存空间利用率的比较

位图排序和qsort排序运行效率以及内存空间利用率的比较

故而在内存空间上位图同样具有优势.