• 2.27专项测试复盘


    • 总排序趟数与初始状态无关的有:(除了快速排序和优化的冒泡,其他都是)

    • 算法复杂度与初始状态无关的有:堆排序、归并排序、选择排序、基数排序。

    • 元素总比较次数与初始状态无关的有:选择排序、基数排序。

    • 元素总移动次数与初始状态无关的有:归并排序、基数排序。

    • 快速排序的最坏情形是数组为正序或逆序,如果pos总是选择第一个元素,那么每次划分只得到一个比上一次划分少一个记录的子序列,此时需要执行次递归调用。显然,采用A(划分元素为三者居中),能够将每次待排序的pos尽可能一分为二,从而使得递归深度为log(2,n),即空间复杂度为O(log(2,n))。

    • 排序时,若不采用计数排序的等空间换时间的方法,合并m个长度为n的已排序数组的时间复杂度最优为(O(mn(logm))

      解析:当n=1时,就成了m个数的归并排序,时间复杂度为O(mlogm)

    • 在最好情况下,下列排序算法中() 排序算法所需比较关键字次数最少。
      A. 冒泡排序
      B. 直接插入排序
      C. 快速排序
      D. 归并排序

      解析:冒泡注意加flag可以在无交换时一次退出,最优O(N),比较N-1次;直插法在原数组有序时也只比较N-1次
      答案:AB

    • 采用递归方式对顺序表进行快速排序。下列关于递归次数的叙述中,正确的是()。
      A. 递归次数与初始数据的排列次序无关
      B. 每次划分后,先处理较长的分区可以减少递归次数
      C. 每次划分后,先处理较短的分区可以减少递归次数
      D. 递归次数与每次划分后得到的分区的处理顺序无关

      解析:快速排序的递归次数与分区处理顺序无关,即先处理较长的分区或先处理较短的分区都不影响递归次数。
      答案:D

  • 相关阅读:
    阿里云 Serverless 异步任务处理系统在数据分析领域的应用
    主流定时任务解决方案全横评
    传统单节点网站的 Serverless 上云
    从函数计算到 Serverless 架构
    阿里云丁宇:以领先的云原生技术,激活应用构建新范式
    [Django] 创建python virtual environment 虚拟环境 并激活 | 安装配置Django
    在PPT里“露脸”
    Excel VBA中的“复制”和“粘帖”(Excel代码集团)
    提取学校名
    190010显示成
  • 原文地址:https://www.cnblogs.com/l999q/p/12372466.html
Copyright © 2020-2023  润新知