首页 > 试题广场 >

输入若已经是排好序的(升序),下列排序算法最快的是()

[单选题]
输入若已经是排好序的(升序),下列排序算法最快的是() 
  • 插入排序
  • 希尔排序
  • 归并排序
  • 快速排序
使用插入排序,在输入数据是已排序的情况下,每一个数据都只与前一条数据进行比较并且不发生交换,这样其时间复杂度为O(n),最小
发表于 2017-09-08 14:51:08 回复(0)
选择A
快速排序在元素基本无序的情况下是最好的选择,在基本递增或递减中时间复杂度是O(n^2)
归并排序时间复杂度稳定在O(nlogn)
希尔排序很难说,跟选择的增量有关,一般小于O(n^2),大于O(n)
插入排序是在序列已有序的情况下最快的,时间复杂度是O(n),另外在数数据规模较小时插入排序效果也很好。
一般不选择传统的冒泡排序,如果题目中有一个选项是冒泡排序,要想一下是否隐含着改进冒泡排序的含义。
编辑于 2017-03-03 18:09:51 回复(2)
这道题没有标明升序,降序啊,如果是升序则插入排序最快o(n),降序的话插入也是o(n^2).
发表于 2017-08-11 09:55:39 回复(1)
A
发表于 2017-01-11 19:46:52 回复(0)