首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对小整数数组进行排序的最佳排序算法是什么?

对小整数数组进行排序的最佳排序算法是什么?
EN

Stack Overflow用户
提问于 2011-09-29 17:04:53
回答 8查看 84.2K关注 0票数 21

根据题目,如果数组的长度为奇数,并且数组元素的编号为1- 10。

例如,

3 6 8 1 3 7 7 9 4 1

我在考虑使用堆排序?由于它是一个数组,合并排序和插入排序需要移位,因此效率不高。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-09-29 17:08:27

数组元素是从1到10的数字。

有了这个限制,counting sort将比任何通用排序算法效率高得多-它是O(n)

票数 32
EN

Stack Overflow用户

发布于 2011-09-29 17:21:36

这是我的计数排序示例

代码语言:javascript
复制
static int[] countingSort(int[] numbers) {
    int max = numbers[0];
    for (int i = 1; i < numbers.length; i++) {
        if (numbers[i] > max)
            max = numbers[i];
    }

    int[] sortedNumbers = new int[max+1];

    for (int i = 0; i < numbers.length; i++) {
        sortedNumbers[numbers[i]]++;
    }

    int insertPosition = 0;

    for (int i = 0; i <= max; i++) {
            for (int j = 0; j < sortedNumbers[i]; j++) {
                    numbers[insertPosition] = i;
                    insertPosition++;
            }
    }
    return numbers;
}
票数 6
EN

Stack Overflow用户

发布于 2011-09-29 18:01:11

如果只有10个元素,你甚至不值得去担心它。如果有一百万,它可能会开始变得重要。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7594929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档