有一系列数据放在数组中,数据很大 所以移动、交换数据位置需要消耗大量时间
如何优化算法,使排序时搬动数据的次数减少?
{A,x,x,x,B,x,x} -> {B,x,x,x,A,x,x} 这算一次搬动
有一系列数据放在数组中,数据很大 所以移动、交换数据位置需要消耗大量时间
如何优化算法,使排序时搬动数据的次数减少?
{A,x,x,x,B,x,x} -> {B,x,x,x,A,x,x} 这算一次搬动
1 回答3.1k 阅读✓ 已解决
1 回答2.6k 阅读
1 回答2.1k 阅读
2.5k 阅读
1 回答1.1k 阅读
1 回答421 阅读✓ 已解决
1 回答381 阅读✓ 已解决
问题不明确,数据量大是什么意思?能一次读入内存吗?如果能,那么一次交换数据的时间与数据量大小的关系是很小的。
如果不能一次读入内存,那么你应该想办法把数据分开进行排序,比如用归并。
另外纠正你一下,几个常用排序算法里面都只有两两交换,没有单独移动一条数据的说法。