欢迎光临散文网 会员登陆 & 注册

马老师Python全系列大师课

2022-10-07 00:08 作者:血霁玫瑰与樱花  | 我要投稿

折半插入排序

算法分析:

虽然折半插入排序法与直接插入排序法相比较,改善了算法中比较次数的数量级,但其并未改变移动元素的时间耗费,所以折半插入排序的总的时间复杂度仍然是O(n2)。 较,因此插入n-1个元素的平均关键字的比较次数为O(nlog2n)。  虽然折半插入排序法与直接插入排序法相比较,改善了算法中比较次数的数量级,但其并未改变移动元素的时间耗费,所以折半插入排序的总的时间复杂度仍然是O(n2)。    void sort(Node[] nodes) {        Node x;        int low, mid, high = 0;        for (int i = 1; i < nodes.length; i++) {            x = nodes[i];            low = 0;            high = i - 1;            while (low <= high) {                mid = (low + high) / 2;                if (x.key < nodes[mid].key) {                    high = mid - 1;                } else {                    low = mid + 1;                }            }            for (int j = i - 1; j >= low; j--) {                nodes[j + 1] = nodes[j];            }            nodes[low] = x;        }    }


马老师Python全系列大师课的评论 (共 条)

分享到微博请遵守国家法律