玩转算法面试day01

1.对一组数据进行排序

根据数据的特征要求分析具体算法

1 含有大量重复元素
推荐三路快排

:很多语言的标注库中快排的基本实现都是三路快排【包括java】

2 数据都是独特的
推荐常用的快速排序
:快排非常依赖数组的随机存储

3 数据几乎有序【正确位置较近】
推荐插入排序
【例】银行事务处理的数据(几乎先发生先完成)

4.数据的取值范围非常有限
推荐计数排序
【例】学生成绩排序

5.是否需要稳定排序
推荐归并排序

6.数据存储使用链表存储
推荐归并排序

7 .内存小了,不足装入内存
推荐外排序算法

准备范围

1.不要轻视基础算法数据结构,只关注新颖特殊的题目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选择合适的OJ

online judge
在线判题系统

推荐leetcode
HackerRank

在学习和实践做题之间,掌握平衡

解决面试问题的整体思路

1.注意条件
【例】给定一个有序数组。。。。【二分查找】
【例】设计一个O(nlogn)的算法 【大概率分治法】
【例】无需考虑额外的空间【开辟额外的空间】
【例】数据规模大概是10000【设计O(n^2)的算法】

没有思路的时候

写几个测试用例,试验一下

不要忽视暴力解法。暴力法是思考的起点
【例】
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值