gpt4 book ai didi

algorithm - 选择排序运行时困惑

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:13 24 4
gpt4 key购买 nike

根据 http://algs4.cs.princeton.edu/21elementary/“选择排序使用 ~N2/2 次比较和 N 次交换来对长度为 N 的数组进行排序。”
例如,我在数组中有两个项目。
String[] a = {"h","t"};
我可以假设选择排序使用 22/2 = 2 次比较和 2 次交换来对长度为 2 的数组进行排序吗?
但是当我运行这个时: http://algs4.cs.princeton.edu/21elementary/Selection.java.html只比较过一次。当然这是常识,因为唯一要比较的项目是 h 和 t。但我仍然对声明感到困惑。他们的实验有问题吗?我是新手。

最佳答案

选择排序使用大约 N^2/2 次比较和 N 次交换。

对于精确分析,选择排序使用

N-1 + N-2 + N-3 + .....1 次比较,对长度为 N 的数组进行排序。

因此,比较总数 = (N-1)*(N)/2 = N^2/2 - N/2 大约等于 N^2/2 。这是他们写的。

在您的示例中,当 N 为 2 时,比较 = 1*2/2 = 1。且交换次数=1。(N-1)

关于algorithm - 选择排序运行时困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23344250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com