关注
按照二楼的说法,我简单总结了一下(以升序为例) 1、直接插入排序,因为该排序算法是先让左边有序,然后从右边依次选择数据放到左边,并使左边有序,那么最好的情况就是原序列本身就是升序,每次只需从右边往左边添加数据,不需要对左边已经排好序的数据进行排序,那么一共只需添加n次;最坏的情况是序列本身是降序的,那么每次从右边往左边添加数据的时候都要与左边的数据进行对比移动,第n次需要移动(n-1)次,则一共需要移动1,+2+3+....+(n-1)=n(n-1)/2次,故时间复杂度范围为O(n)~O(n^2)。平均复杂度为O(n^2)。 2.希尔排序,希尔排序是对直接插入排序算法的改进,即选取增量序列做一次直接插入排序,然后缩小增量,直到最后一个增量为1。我上网查了一下,感觉希尔排序的复杂度比较麻烦,没什么参考资料,这里就直接给出答案,O(n)~O(n^2),我就把它当做直接插入排序记了。ps:好像有人说最好的情况是O(n^1.3),我看到的是平均复杂度为O(n^2),有没有高人出来指点一下! 3.选择排序,选择排序每次选择最大的数据放在数组的后面。每趟都需要对数组进行遍历找出最大的放在后面 ,因此最好的情况一共需要访问1+2+3+…+n-1= n(n-1)/2次,故时间复杂对为O(n^2)。平均时间复杂度为O(n^2)。 4.堆排序,比较好记,堆排序要先构造初始堆,时间复杂度为O(n),然后排序重建堆的时间复杂度为O(nlog2n),所以复杂度为O(n)+ O(nlog2n)= O(nlog2n),原谅楼主非科班出身,对堆啊,二叉树啊的复杂度理解没那么深刻,脑阔疼也不想去推,所以这里就直接记,堆排序的好坏情况都是一样的,时间复杂度为O(nlog2n)。平均时间复杂度O(nlog2n)。 5.冒泡排序,冒泡排序是每次从左边选择一个数据一次与右边数据比较,如果比右边大就交换位置,继续往后比较,那么最好的情况就是序列本身就是升序的,一趟下来比较了n-1次不需要交换结束排序,时间复杂度为O(n);最坏的情况序列本身降序,那么第一次就需要交换n-1次,第二次排序需要交换n-2次,最后一共需要交换(n-1)+(n-2)+(n-3)+….+1= n(n-1)/2,所以时间复杂度为O(n^2)。故时间复杂度为O(n)~O(n^2)。平均复杂度为O(n^2)。 6.快速排序,参考二楼老哥的说法,快排的原理就是每次从当前数组中选出一个pivot元素,并依此元素遍历数组,将数组划分成两部分:小于pivot的元素和大于pivot的元素。然后在两个子数组中分别递归地进行这个***作。因为是2分,所以一共需要划分log2n次,每次遍历一遍数组,复杂度nlog2n。最坏的情况是每次选出的pivot都是当前数组中最大或最小的元素,此时只能划分出一个子数组(另一个没有元素)。那么一共需要划分n次,每次遍历一遍,时间复杂度为O(n^2)。故时间复杂度为O(nlog2n)~ O(n^2)。平均负载度为O(nlog2n)。 7.归并排序,由于是从序列中间对半分,分治排序,因此不管情况好还都要进行划分log2n次,每次遍历一遍数组,时间复杂度O(nlog2n)。平均复杂度为O(nlog2n)。 8.基数排序,哈哈哈,表示我没看基数排序,后面再补吧。或者谁补充一下 空间复杂度的话,前五个都是O(1),后面快速排序的空间复杂度为O(nlog2n),归并排序是O(n),不想推就记一下吧,比好好记。 有可能有问题,欢迎指正。谢谢! 希望大家面试被问到的都是自己会的!我还是一只0offer狗,非科班找IT岗真难。
查看原帖
10 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 你的经历比较单薄, 但简历又弥补了这一点--双非仔个人简历分享2537
- 2... 字节last day,知无不言!2435
- 3... 六月还有机会的,对吗?2227
- 4... 发现27282届的同学怎么越来越卷了,投个票看看相互的进度吧1485
- 5... 难以言说,上周回学校答辩,跟导员老师聊了下天,也跟舍友朋友聊了下,计算机学院我这届的总体就业估计才百分之20多,很多同学要么就是没找到工作,要么就是在实习但是正式工还没找到.班里听说有两三个去了挺有名的中厂,待遇跟我们相比就是降维打击. 我原本觉得自己很失败,工作虽然找到了,但是工作内容,业务啥的感觉完全不行,也学不到东西,都是功能测试,薪资又一般还强制一个月要加足够天数的班.buff叠满.(很多牛友说羡慕的现在还羡慕吗),但是话又说回来,班上很多同学也说羡慕,因为大伙很去去的都是比较小的公司,刚进去开发都是只给到6.7k左右.我只能说从现在来说是没我好,但是从长远角度呢,开发干一两年绝对比我好多了.而我呢已经想怎么熬半年跳去下一家了........ 所以说回暖个屁,我现在这家我百般嫌弃的公司,我在我们组里的学历是最低的,甚至有个9耶在跟我干同样的事天塌了,这样的工作我却甚至似乎连嫌弃的资格都没有了.你说该死不该死. 身边亲人,好友,同学都在找工作,不同专业,不同学历,从大专到本科都有,大多屡屡受挫,感觉现在的环境就像一个高压锅一样,压力不断上升,就看有没有爆的那一天了. 不过只能说找不到也别乱投医,我从找工作到现在只有收到offer那一刻是开心的,上班了跟死了一样,完全不喜欢,感觉完全不适合,狼性文化,没有人情味,把员工当成加班机器的公司让人觉得生理不适,老是在想这样我之后跳槽简历都不知道怎么写了.唉,只能说找不到工作也许是在帮你过滤不好的工作了.....等上班了才发现如果找的时候不焦虑,其实是最舒服的一段时光了,有啥好焦虑的,没工作是坐牢,有工作了就更牢了.奉劝大家放平心态,每天按时学习,投简历,然后好好的享受剩下时间就好了,想那么多干嘛.牢以后有的是机会坐#你觉得今年春招回暖了吗# #牛客创作赏金赛#1304
- 6... 25 暑期实习&秋招面经1113
- 7... 记录一下选择1009
- 8... 怎么包装实习经历呢1003
- 9... 答辩时被导师当着所有人的面阴阳982
- 10... 为什么我的mos管驱动电路总是不听话?(上-基本原理总结)801
正在热议
更多
# 写给毕业5年后的自己 #
7010次浏览 123人参与
# 今年形式下双非本找得到工作吗 #
133884次浏览 1008人参与
# 华泰证券Fintech星战营 #
190809次浏览 279人参与
# 职场捅娄子大赛 #
334486次浏览 3372人参与
# 你的秋招第一场笔试是哪家 #
128533次浏览 1399人参与
# 一人一个landing小技巧 #
65045次浏览 1006人参与
# 材料专业就业可以去哪些企业岗位 #
32835次浏览 314人参与
# 汇川技术求职进展汇总 #
120854次浏览 809人参与
# 产品2023笔面经 #
51168次浏览 441人参与
# 哪些公司笔/面试难度大? #
2558次浏览 19人参与
# 硬件应届生薪资是否普遍偏低? #
70205次浏览 506人参与
# 我想象的工作vs实际工作 #
470841次浏览 4781人参与
# 今年的你投递了多少份简历才上岸 #
33535次浏览 117人参与
# 通信硬件人社招/春招/实习投递现状 #
24959次浏览 922人参与
# 实习中的菜狗时刻 #
349650次浏览 3218人参与
# 考公VS就业,你怎么选? #
58669次浏览 393人参与
# 总结:哪家公司面试体验感最差 #
55794次浏览 262人参与
# 工作后会跟朋友渐行渐远吗 #
25817次浏览 191人参与
# 机械人的薪资开到多少,才适合去? #
107798次浏览 445人参与
# 你的论文盲审过了没? #
103122次浏览 1468人参与
# 考公还是考研,你怎么选? #
26030次浏览 131人参与