摩根史丹利算法面试真题:插入排序
Posted 代码笔记哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了摩根史丹利算法面试真题:插入排序相关的知识,希望对你有一定的参考价值。
关注代码笔记哥有助于升职加薪噢!
欢迎来到笔记哥讲题 第6期
Insertion Sort
插入排序
接上一期的内容,我们来复习另一个时间复杂度为O(n2)的比较排序:插入排序 (Insertion Sort) 。
题意
给出一个无序整数数组,将其按从小到大的顺序排好。排序过程必须在给定数组内实现(in-place), 不可以额外开新的数组大小的空间。要求用插入排序完成。
样例:
输入: [2, 9, 5, 1]
输出: [1, 2, 5, 9]
思路
“局部有序,挪移插入。”
视频中提到“插入排序适用于数组局部有序这一场景”。这里补充一下,如果给定数组完全逆序,如 input array = [9,5,2,1] 我们仍可用插入排序;因为此时第一个数字9,可看做它对于它自己已经有序。只是在完全逆序情况下,插入排序的时间复杂度必然为O(n2),读者可以思考下这是为什么。
详细讲解见视频。
视频
1. 腾讯视频链接
2. YouTube链接
墙外党请移步 https://youtu.be/ys6-TlRqAo8
长按上方二维码,关注Coding-Notes
获得美国顶尖金融与技术公司面试算法题
代码笔记哥,走心讲真题
将以更多原创优质内容
答谢您的赞赏
以上是关于摩根史丹利算法面试真题:插入排序的主要内容,如果未能解决你的问题,请参考以下文章