首页 > 试题广场 >

待排序元素规模较小时,宜选取哪种排序算法效率最高( )

[单选题]
待排序元素规模较小时,宜选取哪种排序算法效率最高(      )
  • 堆排序
  • 归并排序
  • 冒泡排序
  • 希尔排序
笔记:递归时间可能长于比较时间
发表于 2019-12-16 19:22:32 回复(0)
递归本身需要处理的时间就比普通比较长。如果数据越大,时间复杂度的优势就越明显。如果数据量小,时间复杂度的优势就不明显。
发表于 2022-01-14 11:43:46 回复(0)
360公司是傻雕吗
发表于 2020-04-18 10:55:38 回复(2)
应该是堆排序吧,nlog(n), 冒泡是n^2,n=5时?
发表于 2020-04-15 08:08:33 回复(4)
迭代版希尔排序不服
public void shellSort(int[] arr) {
        for (int gap = arr.length / 2; gap > 0; gap /= 2)
            for (int i = gap; i < arr.length; i++)
                if (arr[i - gap] > arr[i]) {
                    int temp = arr[i];
                    int j = i - gap;
                    for (; j >= 0 && arr[j] > temp; j -= gap)
                        arr[j + gap] = arr[j];
                    arr[j + gap] = temp;
                }
}


编辑于 2020-03-24 03:34:34 回复(1)
个人认为,应该是其他三种都是采用递归的方式,当元素规模较小时,函数调用所耗费的时间可能比冒泡排序移动元素更多
发表于 2019-09-01 20:35:25 回复(0)
归并排序效率更高吧
发表于 2019-08-20 16:19:25 回复(0)