首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >替代插入排序+复制小数组时必须排序*和*复制

替代插入排序+复制小数组时必须排序*和*复制
EN

Stack Overflow用户
提问于 2013-09-12 04:24:47
回答 1查看 303关注 0票数 0

考虑两个数组,A和B,两者的长度都是N,N相当小。我想对A中的元素进行排序,并将排序后的元素存储在B中。

在A上执行就地插入排序,然后将排序后的值大容量复制到B中是非常简单的,但是,这不能充分利用以下两点:

  1. 有N号的划痕空间可供使用和
  2. 排序后的值最终必须在B而不是A中结束。

有人能提出不同的方法(可能是修改的插入排序吗?)这将利用其中的一个(或两者),并最终超过简单的解决方案插入排序+复制?

EN

回答 1

Stack Overflow用户

发布于 2016-12-08 19:29:36

很多年后来的,但如果有人有机会,这是我的两分钱。使用插入排序与诸如合并排序之类的快速离开位置排序的组合可能会提供一些最小的改进。

  1. 将数组拆分为季度,并使用插入排序进行排序。
  2. 将第一和第二季度合并到划痕空间,第三和第四季度相同
  3. 从零开始将前半部分和下半部分合并到目标数组中。

同样,这可能提供了最小的实际改进,而且可能是过早优化的情况。您最好对您的应用程序进行基准测试,看看您是否真的需要改进算法的这一部分,或者您的时间是否更好地用于优化其他内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18764217

复制
相关文章
javascript 数组的深复制和浅复制
这段时间忙的我是欲仙欲死,导致公众号断更了好几天。 但收获也是巨大的,对于JS的一些应用有了一些新的理解,以后我慢慢写出来。 今天简单的写一个javascript里数组的深复制和浅复制。 先看代码:
web前端教室
2018/02/06
1.3K0
javascript 数组的深复制和浅复制
数组插入排序
插入排序是一个相对复杂一点的排序算法,但是效率要比我们以前接触过的排序算法快一些,他的思想是将数组分为两组数据(第一次分的时候就是数组第一个元素为一组,后面的所有元素为一组),然后从后面一组数据中抽取第一个元素与前面一组数据依次做对比,按需求将大的或者小的值插入到前面的一组数据中,最终后面一组数据全部插入完毕后,前面一组数据就是有序状态了。
我与梦想有个约会
2023/10/20
1240
数组插入排序
Map复制给新Map时,用 “=、clone、还是putAll”?论Map的深复制和浅复制
在我们最初使用map复制开发业务代码时,通常会踩到深浅复制(拷贝)这个坑里,比如我,在Map复制时 (如:Map<String, String> new_Map = old_Map) 出现过以下两类问题:
陈哈哈
2020/07/03
4.5K0
小程序点击复制功能_怎么复制小程序链接
长按复制,在微信小程序内的文字无法长按复制,除了text节点以外,但是要在text标签内加一个“selectable”属性。
全栈程序员站长
2022/11/11
6.3K0
【小算法】插入排序
插入排序也是一种非常容易理解的算法,核心思想就是每次将新的元素往原本有序的数组中插入。
Frank909
2020/01/13
3100
【小算法】插入排序
写时复制集合 —— CopyOnWriteArrayList
" JUC 下面还有一个系列的类,都是 CopyOnWriteXXX ,意思是写时复制,这个究竟是怎么回事?那就以 CopyOnWriteArrayList 为切入点,一起了解写时复制是怎么回事? "
程序员小航
2020/11/23
6280
写时复制集合 —— CopyOnWriteArrayList
phpCOW机制(写时复制)
写时复制(Copy-on-Write,也缩写为COW),顾名思义,就是在写入时才真正复制一份内存进行修改。 COW最早应用在*nix系统中对线程与内存使用的优化,后面广泛的被使用在各种编程语言中,如C++的STL等。 在PHP内核中,COW也是主要的内存优化手段。 在前面关于变量和内存的讨论中,引用计数对变量的销毁与回收中起着至关重要的标识作用。 引用计数存在的意义,就是为了使得COW可以正常运作,从而实现对内存的优化使用。
仙士可
2019/12/19
6490
phpCOW机制(写时复制)
详解排序算法--插入排序和冒泡排序插入排序和冒泡排序分析
冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。尽管这个算法是最简单了解和实现的排序算法之一,但它对于包含大量的元素的数列排序是很没有效率的。
desperate633
2018/08/22
6030
详解排序算法--插入排序和冒泡排序插入排序和冒泡排序分析
python 深复制和浅复制详解
id(x)函数 id()函数可以查看一个变量在内存中的地址 变量赋值给变量-拷贝引用 对于以下代码 >>> import copy >>> a=[1,2,3] >>> b=a >>> id(a) """ 4382960392 """ >>> id(b) """ 4382960392 """ >>> id(a)==id(b) #赋值后,两者的id相同,为true。 True >>> b[0]=222222 #此时,改变b的第一个值,也会导致a值改变。 >>> print(a,b) [222222,
演化计算与人工智能
2020/08/14
7880
mysql复制系列3-传统复制和GTID复制
在mysql5.6之前的版本支持传统的复制,即基于二进制文件和位置的复制。mysql5.6及其以后的版本支持基于GTID的复制,有了GTID复制不需要指定文件和位置了,复制会自动找二进制日志和位置
wangwei-dba
2021/05/11
9830
Java中数组的复制
看到了吗,array2会随着array1的变化而变化,array2只是对array1的一个引用。
卡尔曼和玻尔兹曼谁曼
2019/01/25
1.9K0
js 数组 复制「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158844.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
2.1K0
ES6数组复制
前面我们了解了...中可以获取未指定的函数,name这里在数组中也可以进行数组的复制
十月梦想
2018/10/09
8050
ES6数组复制
Python的浅复制和深复制
在前文已经看到过了可以使用list函数去复制一个列表,这个就是浅复制,浅复制会构建一个新的对象,并且维护之前对象(子对象)的引用,而深复制则是将之前的子对象通过递归的方式也拷贝出来。从例子中学习吧。 先看看浅复制:
哒呵呵
2018/08/06
7000
接口Cloneable浅复制和深复制
浅复制shallow copy,指在复制源对象中,如果某个成员数据是一个对象(除了String和所有包装类对象之外),clone()方法只是复制对这个成员对象的引用。即在复制后的对象中,它所具有的成员对象,只是对原来成员对象的引用,并没有真正复制这个成员数据。但对所有基本类型成员数据,包括字符串以及包装类成员对象,clone()则执行真正复制。即分配内存地址,并将它们拷贝到这个内存中。
卡尔曼和玻尔兹曼谁曼
2019/01/25
5380
redis全量复制和部分复制
我们在第一次同步数据的时候,redis集群都是进行全量复制,由于全量复制的开销比较大,在2.8版本之后就提出了一种部分复制,我们先看一下全量复制的流程原理。
小土豆Yuki
2020/06/15
1.3K0
Postgresql 复制延迟 和 复制"延迟" 与 复制停止大乌龙
Mysql的逻辑复制性能虽然被诟病的比较久了,但是功能多,延迟复制,级联复制,多源复制. 尤其MYSQL的复制的灵活性有种被玩坏了感觉. POSTGRESQL 的复制方式其实也是支持延迟库的,POSTGRESQL 的WAL 的复制方式也是比较灵活的,PITR . 实际上原理就是延迟数据的重放.PostgreSQL使用的是流复制,所以它的设计速度非常快,因为WAL接收者截取了一组日志记录,然后把这些日志记录写到WAL文件中。那么这篇文字要说的一个复制延迟是人为的复制延迟, 另一个是实际上由于某些原因导致的复制延迟.
AustinDatabases
2021/04/01
2.2K0
Java中深复制和浅复制
关于Java中的深复制、浅复制,网上也有很多资料解释,这里整理出来加入一些自己的想法。
用户2146693
2019/08/08
8460
Java中深复制和浅复制
php7 写时复制
在《php7引用计数》的文章中,我们知道,对于复制类型的变量,在赋值时,我们并没有重新复制一份数据,而是让新变量的zend_value中相应的指针指向原来的数据,同时增加引用计数。
跑马溜溜的球
2020/12/07
3.5K0
php7 写时复制
写时复制技术(详解版)
我们知道了一个进程如何采用请求调页,仅调入包括第一条指令的页面,从而能够很 快开始执行。然而,通过系统调用 fork() 的进程创建最初可以通过使用类似于页面共享的技术,绕过请求调页的需要。这种技术提供了快速的进程创建,并最小化必须分配给新创建进程的新页面的数量。
用户5546570
2020/02/13
1.7K1

相似问题

Java插入排序-向下数组复制值

22

堆排序和插入排序中复制次数的计数和比较

10

数组列表复制和排序方法

110

我必须使用插入排序和递归(没有循环)对数组进行排序。

28

插入排序和相关数组

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文