正确答案: D

堆排序

题目:对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。

解析:除了堆排序算法的比较次数是O(nlog2n),其他的都是n(n-1)/2。

查看原题 点击获取本科目所有试题

举一反三的答案和解析:

  • [单选题]有以下程序include using namespace std;static int days[]= { 31,28,31,30,31,30,31
  • 有以下程序 #include iostream> using namespace std; static int days[]= { 31,28,31,30,31,30,31,31,30,31,30,31 }; class date { private: int month, day, year; public: date( int m, int d, int y ) { month = m; day = d; year = y; } date() {} void disp() { coutyear"-"month"-"dayend1; } date operator+( int day ) { date dt = *this; day+= dt.day; while ( day > days[dt.month - 1 ] ) { day -= days[ dt.month - 1 ]; if ( ++dt.month == 13 ) { dt.month = 1; dt.year++; } } dt.day = day; return dt; }; int main() { date d1( 6, 20, 2004 ), d2; d2: d1 + 20; d2.disp(); return 0; } 执行后的输出结果是

  • 2004-7-10

  • 解析:解析:本题考核运算符的重载。本题通过将“+”运算符重载为类date的成员函数实现简单的对象加法。

  • [单选题]若已定义:int a=25,b=14,c=19;执行以下三目运算符(?:)所构成的语句: a=25&&b--=2&&c? printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d, c=%d\n",a,b,c); 输出结果是( )。
  • a=25,b=13,c=19

    a=26,b=14,c=19

  • 解析:解析:此题综合考查多种运算符的使用:首先计算表达式a=25&&b--=2&&c的值,很容易看出b--=2的值为假,因此表达式为假;根据三目运算的特点,由于表达式为假,所以应该执行printf("###a=%d,b=%d,c=%d\n",a,b,c);这时a的值依然为25,b的值经过b--运算后变为13,而c的值仍为19。

  • [单选题]关于下面程序,( )的结论是正确的。
  • 不能通过编译,因为类J_Test没有定义无参数的构造方法


  • 推荐下载科目: 计算机四级 软考中级 微软认证 思科认证 计算机一级 软考高级 软考初级 通信工程师 计算机操作员中级 其他
    @2019-2026 不凡考网 www.zhukaozhuanjia.com 蜀ICP备20012290号-2