全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案

题目一:什么是快速排序算法的最好情况?

  • A. 初始就顺序

  • B. 初始就逆序

  • C. 每次主元的位置都在数组的一端

  • D. 每次正好中分

感觉一开始就是顺序的情况最理想。但是难道真的这么简单?应该不对。答案C应该是最坏的情况了。考虑答案D,如果每次都中分,那么不就相当于每次递归都是折半的,所以符合分而治之中最好的情况。

所以选D。

题目二:快速排序的标准接口应该怎么写?

void Quick_Sort(ElementType A[], int N)
{ /* 这里写什么?*/
}
  • A. Quicksort( A, 0, N );

  • B. Quicksort( A, 0, N-1 );

  • C. Quicksort( A, 1, N );

  • D. Quicksort( A, 1, N-1 );

一想就知道,是B。因为我们传入到 Quicksort 的下标是0和N-1,然后开始执行第一个递归,把最小的放在0坐标位置,最大的在N-1的坐标位置,中间的放在 N-2 的位置,然后再进行递归……

题目三:快速排序是稳定的算法。

  • A. √

  • B. ×

我们思考一下视频中讲解的关于某一步:

当有元素正好等于pivot的时候,我们选择了“停下来交换”,也就是说,遇到同样的数,先后位置会发生改变。

题目四:给定A[]={46, 23, 8, 99, 31, 12, 85},调用非递归的归并排序加表排序执行第1趟后,表元素的结果是:

  • A. 0, 1, 2, 3, 4, 5, 6

  • B. 1, 0, 3, 2, 6, 5, 4

  • C. 1, 0, 2, 3, 5, 4, 6

  • D. 0, 2, 1, 4, 3, 5, 6

什么玩意,为什么还要调用非递归的归并排序?

不过可以做就是了。调用归并以后,每单独两个进行一次排序:

index = {1,0,2,3,5,4,6}

A[]={46, 23, 8, 99, 31, 12, 85}

然后执行表排序,发现表排序不需要进行交换。

所以选C

题目五: 给定A[]={23, 46, 8, 99, 31, 12, 85},调用表排序后,表元素的结果是:

  • A. 1, 2, 3, 4, 5, 6, 7

  • B. 2, 0, 3, 5, 1, 4, 6

  • C. 3, 6, 1, 5, 2, 7, 4

  • D. 2, 5, 0, 4, 1, 6, 3

index={0,1,2,3,4,5,6}

A[]={23, 46, 8, 99, 31, 12, 85}

第一次,46大于23,不用动 table[] = {0,1,2,3,4,5,6 }

第二次,8最小,所以序号到最前面:table[] = {2,0,1,3,4,5,6 }

第三次:99最大,不用动:table[] = {2,0,1,3,4,5,6 }

第四次:31一直比较到23的后面一个:table[] = {2,0,4,1,3,5,6 }

第五次:12一直比较到8的后面:table[] = {2,5,0,4,1,3,6 }

最后一次:85只比99小,所以只跟99交换:table[] = {2,5,0,4,1,6,3 }

选D

数据结构 排序 思考题 3相关推荐

  1. 数据结构 排序 思考题1

    全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案 题目1: 对于7个数进行冒泡排序,最坏情况下需要进行的比较次数为 A. 7 B. 14 C. 21 D. 49 第一轮 ...

  2. 数据结构 排序 思考题2

    全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案 题目一:在堆排序中,元素下标从0开始.则对于下标为i的元素,其左.右孩子的下标分别为: A. 2i-1, 2i B. ...

  3. 数据结构 排序 思考题4

    全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案 题目一:(表排序后的)物理排序过程的最坏情况是: A. 有2个环,每个包含N/2个元素 B. 有N/2个环,每个环包含 ...

  4. 数据结构---排序算法的总结

    数据结构-排序算法的总结 分类 冒泡排序,时间复杂度O(n x n),空间复杂度O(1),稳定 简单选择排序,时间复杂度O(n x n),空间复杂度O(1),不稳定 希尔排序,时间复杂度O(n^1.3 ...

  5. 数据结构-排序基础代码

    数据结构-排序基础代码 1.快排的递归算法: void QuickSort(int A[],int n){Qsort(A,0,n-1); } void Qsort(int A[],int left,i ...

  6. 数据结构----排序

    ##数据结构--排序 Created with Raphaël 2.1.2选择选择直接选择直接选择堆排序堆排序直接选择堆排序大根堆.小根堆:找出最小(大)的Key Created with Rapha ...

  7. 【数据结构排序算法系列】数据结构八大排序算法

    排序算法在计算机应用中随处可见,如Windows操作系统的文件管理中会自动对用户创建的文件按照一定的规则排序(这个规则用户可以自定义,默认按照文件名排序)因此熟练掌握各种排序算法是非常重要的,本博客将 ...

  8. 数据结构-排序算法总结与感悟

    数据结构-排序算法总结 一,排序的基本概念 排序:有n个记录的序列{R1,R2,-,Rn},其相应关键字的序列是{K1,K2, -,Kn },相应的下标序列为1,2,-, n.通过排序,要求找出当前下 ...

  9. C++基础-介绍·数据结构·排序·算法

    C++基础-介绍·数据结构·排序·算法 特点 使用方向 RPC Data Struct 数据结构 栈 Stack 内存分配中的栈 队列 List 数组 Array 链表 LinkTable 树 Tre ...

  10. 数据结构-排序算法(c语言实现篇)

    数据结构-排序算法(c语言实现篇) 排序算法是非常常用的算法,从介绍排序的基本概念,到介绍各种排序算法的思想.实现方式以及效率分析.最后比较各种算法的优劣性和稳定性. 1 排序的概念及应用 1.1 排 ...

最新文章

  1. 项目视频光盘项目中所学概览-html5+批处理+bat转exe
  2. 95后数据科学家教你从零自学机器学习,这有3本入门必看书籍
  3. 互联网协议 — IPv4 — CIDR 网络地址表示法
  4. 3gpp协议_C-V2X: 3GPP协议阅读前的一些准备
  5. java 中鼠标事件_[Java教程]js中鼠标事件总结
  6. Access中的模糊查询
  7. java 获取上传文件后缀_java 文件上传相关知识及得到后缀名
  8. python将多重列表中的成绩按大小输出_Python编程从入门到实践-连载5(字 典)
  9. 2013年阿里巴巴实习生笔试题
  10. 孩子早餐要吃好,如何为孩子准备营养早餐
  11. 金融危机对中国IT产业四大深层影响
  12. 6.13编一程序,将两个字符串连接起来,不要用strcat函数。
  13. 时序逻辑电路的设计(一) -- 模10的计数器电路(附Multisim)
  14. 多图站点性能优化:图片压缩、图片缩放、HTTP2、CDN、网络传输优化、图片懒加载预加载、响应式图片
  15. Detecting Faces in Images: A Survey( 翻译)
  16. 警示自己-算是为了提升自己的内涵
  17. 问题十四:怎么可视化球的法向量
  18. CIKM2020 | 最新9篇推荐系统相关论文
  19. 多序列比对要多久时间_Muscle进行多序列比对
  20. 深度学习之CNN卷积神经网络详解以及猫狗识别实战

热门文章

  1. win7 install solution for intel SKL and BSW platform
  2. c语言cmp函数含义,【C艹】关于sort用法之重构cmp(comp)函数的笔记
  3. decimals数据格式化
  4. 瑞幸咖啡“生死劫”:财务数据曾惊天造假,一年巨亏几十亿美元
  5. 瑞幸退市,董事长被罢免,但是我并不同情他!
  6. 3.4.3 区域与图像的平均灰度值
  7. 专访哈佛公共卫生学院院长胡里奥·弗兰克
  8. 第六章Python数据可视化
  9. 模拟摄影测量和数字摄影测量
  10. TrueCrypt最好用的加密软件