1.插入排序 选择排序 起泡排序
其时间复杂度为O(n2);
2.堆排序 快速排序 归并排序
其时间复杂度为O(nlog2n)。
这是就平均情况而言的,如果从最好的情况考虑,
则插入排序和起泡排序的时间复杂度最好,为O(n),
而其他算法的最好情况同平均情况大致相同。
如果从最坏的情况考虑,快速排序的时间复杂度为O(n2),插入排序和起泡排序虽然同平均情况相同,但系数大约增加一倍,运行速度降低一半,而选择排序、堆排序和归并排序则影响不大。
总之,
在平均情况下,快速排序最快;
在最好情况下,插入排序和起泡排序最快;
在最坏情况下,堆排序和归并排序最快。
改了一点点,大约10秒钟运行完1000 0000.1秒运行完100 0000.
首先你要知道,打印语句是很慢的,这个10秒是删除掉打印语句后的速度.
------------------------------------
#include<math.h>
#include<stdio.h>
void main()
{
long i,n
printf("%d ", 2)
for(n=3n<=10000000n+=2)
{
int temp=int(sqrt(n))
for(i=3i<=tempi+=2)//改成+2
if(n %i == 0)
break
printf("%d ", n)//之前的判断去掉
}
printf("\n")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)