zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    firebird database (快速入門)
    firebird的数据类型(datatype)
    通过ASP.NET获取URL地址方法
    FIREBIRD使用经验总结
    C# Append a host header to a website in IIS by code
    Ubuntu 9.04 下载镜像地址
    Firebird如何防止空值扩散
    Tmail: 开源邮件服务器软件包
    Firebird中的NULL
    本地数据源:使用firebird数据库
  • 原文地址:https://www.cnblogs.com/l999q/p/12372466.html
Copyright © 2011-2022 走看看