A 空间复杂度:
选择排序:仅使用常数个存储单元(temp),O(1)
冒泡排序:仅使用常数个存储单元(temp),O(1)
直接插入:仅使用常数个存储单元(temp),O(1)
希尔排序:仅使用常数个存储单元(temp),O(1)
堆排序:删除最大元素之后,直接放在数组的末尾,一边删除一边形成了有序数组,仅需要常数个存储空间
快速排序: 由于快速排序是递归的,需要借助一个递归工作栈来保存递归所需要的信息,其容量与递归调用的最大深度相同,最好情况下为log(N+1)向上取整, 最坏情况下为O(N)
归并排序:递归+归并两个数组都需要空间,递归所需要的空间为O(logN),归并所需要的空间为O(N),所以取最大值,为O(N)
基数排序:需要的空间(基数值+N个元素)
D
快速排序,当初始序列基本有序的时候,最不利于发挥其优势,越能够等分待排序数组,越高效待排序列基本有序:直接插入是最有效的,冒泡排序,如果是前面基本有序,最后一个元素是最小,则需要大量的交换,堆排序也不错,但是不如直接插入好,归并排序,初始是否有序无关
C
在十分接近有序的序列中,各种算法的时间复杂度,不一定等于最优时间复杂度:
插入排序: O(N)
归并排序,与是否有序无关,O(N*logN)
快速排序,越有序,越低效,由于采用了首元素作为pivot,所以每次都只有一面,这样的话,时间复杂度就为最差时间复杂度O(N^2)
C
对于ABD,数组首尾应该是有序,而且是有序极值 B
排序算法的时间复杂度,与需要比较的次数相关,与存储结构,是否稳定排序是无关的 A
选择排序,冒泡排序,堆排序,极值必定出现在尾部
快速排序,必有pivot
希尔排序,必定间隔有序
归并排序,必定成组有序
折半插入,直接插入,一端有序 C C A A
判断是不是快速排序:找pivotAD
希尔排序,直接插入排序,在一趟排序结束之后,都不一定能选出一个元素在其最终位置上
CDACD C B 答案给的是快速排序,牛客网上给出的答案是基数排序 浙大版的快排和严蔚敏版的快速排序是不一样的:浙大: 先定位到两个不合理的元素,然后将这两个元素进行互换
严蔚敏:将pivot赋值给temp,然后先移动high指针,找到不合理元素后,将A[low]替换,然后移动low指针,找到不合理的元素后,替换掉high指针所指向的元素,交替移动high,low指针,找到不合理的,就像踢皮球一样将对方指针给覆盖,low指针从最开始的low开始,当满足A[low/high] >= / <= pivot的时候,就进行互换,而不是只有满足 > 或者<的时候才进行互换
外层while循环的条件为:low < high,而不是low <= high,即当low指针与high指针重合的时候就退出循环,然后用pivot替换A[low/high]BCD D 排序分为:插入,交换,选择,基数排序和归并排序
插入:直接插入,折半插入,希尔排序
交换:冒泡排序,快速排序
选择:简单选择,堆排序
基数排序和归并排序
冒泡排序,选择排序,堆排序都可以部分得出结果(根据答案,好像快速排序也是可以的)
这三种方法进行比较,堆排序是最快的(logN)
C
同上
C A D A D
本题易错:
如果遇到7,8,9,1这样的冒泡序列,那么每次冒泡还是会讲一个元素放到正确的位置上
C B

转载于:https://juejin.im/post/5b9a1be66fb9a05cd456cde8

算法与数据结构1800题相关推荐

  1. 算法与数据结构1800题 之 栈和队列

    b,c 栈已经存在 栈ADT initStack(&S):初始化一个空栈 StackEmpty(S):判断栈是否为空 Push(&S,x):进栈 Pop(&S,&x): ...

  2. 算法与数据结构1800题 之栈和队列 (一)

    B C 画图,易错 D 画图 C 队列在进行画图的时候,画在哪个格子不重要,重要的是队列里面的元素需要是连在一起的,可以将队列想象成循环队列,或者不限制空间的队列 B 数组型循环队列中,入队的元素在数 ...

  3. 算法与数据结构实验题 10.23 寡人的难题

    算法与数据结构实验题 10.23 寡人的难题 ★实验任务 寡人心系天下为国为民,想要在历史中留下点痕迹,就必须要让国家强盛起来,正所谓想致富先修路,寡人觉得去修路,那些吃干饭的大臣给了寡人很多条要修的 ...

  4. 算法与数据结构实验题 10.16 被Gank的亚索

    算法与数据结构实验题 10.16 被Gank的亚索 ★实验任务 "哈撒给~",亚索一个Q打中了残血的维克多并挂上了点燃,正当亚索准备单杀维克多时,突然一声大喝!从两边草丛中窜出了两 ...

  5. 算法与数据结构实验题 10.23 寡人的难题——Kurskal算法

    ★实验任务 寡人心系天下为国为民,想要在历史中留下点痕迹,就必须要让国家强盛起来,正所谓想致富先修路,寡人觉得去修路,那些吃干饭的大臣给了寡人很多条要修的道路,奈何国库空虚,寡人只能选择其中一些道路, ...

  6. 算法与数据结构实验题 6.4 Summary

    ★实验任务 可怜的 Bibi 丢了好几台手机以后,看谁都像是小偷,他已经在小本本上记 下了他认为的各个地点的小偷数量. 现在我们将 Bibi 的家附近的地形抽象成一棵有根树.每个地点都是树上的 一个节 ...

  7. 算法与数据结构实验题 5.18 小孩的游戏

    ★实验任务 一群小孩子在玩游戏,游戏规则是这样子,给了一些卡片,上面有数字,现在要把卡片按照某一种序列排好,让这些数字重新链接组合成一个大数,求最大的数是什么. ★数据输入 第一行一个整数N 接下来N ...

  8. 算法与数据结构实验题 7.4 玩游戏的亚索 (最小支撑树)

    1.题目: 2.代码: #include<cstdio> #include<iostream> #include<algorithm> using namespac ...

  9. 算法与数据结构实验题 4.17 Maze

    ★实验任务 有一只小仓鼠身处在一个 N*M 迷宫之中,它现在想知道它最快能什么时候到达出口. 迷宫是由 ' . ' ' # ' 构成,' . '表示可以通行,'#'表示墙壁,不能通行,现在小仓鼠在'S ...

  10. 算法与数据结构实验题 8.21 森林冰火人

    本题的关键在于:每有一个雪人融化成为"0"的体积,就把它移到整个数组的最前面去.这样可以减少用时.第一次交的时候卡在这个上面了,time limit exceeded! #incl ...

最新文章

  1. 原子层沉积(ALD)和化学气相沉积(CVD)微电子制造铜金属化的研究进展
  2. 档案盒正面标签制作_包材工艺丨浅述模内标签印刷及材料的选择
  3. poj2955Brackets(区间DP)
  4. .Net异步编程知多少
  5. 10怎么设置pg接口_西门子S7300 PLC时间日期怎么读取?
  6. 排序算法:归并排序算法实现及分析
  7. 74cms骑士人才招聘网系统网站源码 SE版
  8. 判断系统大小端方法分析与总结
  9. 【初赛】「阅读程序」题答v1.0
  10. VMware中虚拟机Ubuntu访问Windows7主机文件夹的设置流程
  11. PRML 1.6 信息论
  12. python 绝对值_Python绝对值– abs()
  13. Delicious Retouch 5—PS磨皮插件
  14. 方维带货直播最新教程原创文档-申请腾讯云密钥
  15. Windows下WordPress安装教程(全)
  16. 说明书丨Abnova EDA(人)重组蛋白
  17. php json接口转化为数组 生成xml接口
  18. Unity-黑暗之魂复刻-动画控制器
  19. 在mtk移植个linux内核,移植 Linux Kernel 造成無法開機之解決方案以及除錯工具
  20. 浏览器去除烦人的黑白滤镜

热门文章

  1. 【iOS自动化测试】第一章:方案调研
  2. 如何免费下载外文文献
  3. ffmpeg添加到环境变量_Windows 10系统下安装FFmpeg教程详解
  4. cad怎样弄出放线的坐标_利用CAD绘制全站仪放线用的坐标点
  5. python flask智能租房项目——详情页
  6. 天然气故障代码大全_网上最全燃气表故障代码大全-【看过的人都会选择收藏】...
  7. c4dr20怎么安装oc渲染器怎么安装_c4d怎么安装oc渲染器/插件
  8. 优秀程序员 分析提高能力 程序进阶
  9. eclipse中文语言包安装
  10. Eclipse如何使用Git完成代码比对并提交操作