作业帮 > 综合 > 作业

一个c语言的选择题,大家帮忙看一下

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 20:50:38
一个c语言的选择题,大家帮忙看一下
第 28 题 假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
A.log2n B.n2 C.O(n1.5) D.n(n-1)/2 答案选择D 大家帮忙说一下冒泡排序,谢谢了
一个c语言的选择题,大家帮忙看一下
冒泡法就是从第一个元素开始,拿第一个元素跟从第二个元素先比较,如果第一个元素大于第二个元素,那么交换这两个元素的值(假设是按升序冒泡);接下来在比较第二个元素跟第三个元素,如果第二个元素大于第三个元素,则交换其值,后面的依次类推,完成一次冒泡后最后一个元素就保存的是当前数组中所有元素的最大值,假设数组总共有n个元素,则最坏情况下完成第一次冒泡需要的次数为n-1次,然后进行第二此冒泡,第二次冒泡也跟第一次基本一样,但是第二次冒泡会比较到倒数第二个位置就停止,因为已经确定了最后一个位置的最大值,第二次冒泡会找到所有元素中第二大的元素放在倒数第二个位置,最坏情况下完成第二次冒泡需要的比较次数为n-2此,以此类推,到最后的依次冒泡需要的次数为1次。如果都按最坏情况计算完成冒泡所需比较次数则总的比较次数为 1 +2 +3 +4 +5+...+n-2+n-1 = n*(n-1)/2