相关疑难解决方法(0)

排序算法的"Ω(n log n)障碍"有哪些规则?

我写了一个简单的程序,在O(n)中排序.它的内存效率很低,但这不是重点.

它使用了背后的原理HashMap进行排序:

public class NLogNBreak {
    public static class LinkedListBack {
        public LinkedListBack(int val){
            first = new Node();
            first.val = val;
        }
        public Node first = null;
        public void insert(int i){
            Node n = new Node();
            n.val = i;
            n.next = first;
            first = n;
        }
    }

    private static class Node {
        public Node next = null;
        public int val;
    }

    //max > in[i] > 0
    public static LinkedListBack[] sorted(int[] in, int max){
        LinkedListBack[] ar = new LinkedListBack[max …
Run Code Online (Sandbox Code Playgroud)

sorting algorithm performance big-o lower-bound

26
推荐指数
2
解决办法
1万
查看次数

合并2个排序列表

我被要求提出尽可能多的解决方案来解决以下问题:

编写一个函数,它接受两个数字列表(假设都按升序排列)并将它们合并为一个列表(也按升序排列).

我的第一个解决方案是append list1进入list2然后再进行sort.

然后我发现了一个内置的merge.

然后我决定自己实际实现一个解决方案,并且我想出了一个尾递归函数,目前只适用于列表的子集.

这个问题本身似乎也许我终于有理由阅读Knuth了,但是由于下雪,Uni和图书馆都关闭了.

所以我转向你,对这个问题有什么有趣的,有效的或反模式的方法?


PS我不是在寻找实现,除非这是展示这个想法的最佳方式.我只是想看看人们是如何处理这类问题的.

lisp

3
推荐指数
2
解决办法
1710
查看次数

标签 统计

algorithm ×1

big-o ×1

lisp ×1

lower-bound ×1

performance ×1

sorting ×1