排序算法高手帮忙选一种最快的排序方法
情况是这样的:
开始只有一个数字,程序运行一段时间产生新的数字,再运行一段时间产生新数字.
要求新数字产生之前的数字按顺序排列存储在一个数据结构内,新产生的数字放入到排好序的排列中.
新产生数字的特点是与上次插入的数字大小接近的概率是一半,和上次插入数字无关的概率是一半.并且经常有插入的几个数字的大小差不太多.
求最快的算法.不用考虑空间.
还有一个特点就是数据量不大,顶多100个,要求即时性很高的程序
人气:306 ℃ 时间:2020-07-03 02:14:04
解答
内存排序算法中最常用的算法是快速排序算法,时间复杂度是Onlogn,其它的几个算法,如插入排序、堆排序的时间复杂性都是这个值.
正常排序问题可以用堆排序,或者快排序,但这些算法实际上都是在数据队列已知的情况下的算法,你实际需要的是一个记录插入效率较高的算法,插入排序应该也不错的.
当然也可以进行一定优化,就是在产生数值有一定范围的情况下对数值区间进行分桶,产生数值后直接在指定的桶中应用以上排序算法.
另外,用数组的效率要比链表高
推荐
- 选择排序算法
- 一般来说,最快的排序算法是()
- 高一数学题已知平面向量a=(1,2),b=(-2,m),且a∥b,求2a
- 小红用10米长的彩带做了一些花,每朵花用三分之二米彩带.她把7朵送给了同学,还剩下几朵花?
- CaCO3 + 2HCl == CaCl2 + H2O + CO2↑吸热反应还是放热反应?为什么?
- “不可数名词通常没有复数”怎么理解?
- 若直角三角形的两条直角边为ab,斜边为c,斜边上的高位h,则有
- 电容和电压是什么关系,有公式吗
猜你喜欢