在对整数数组5 7 4 9 8 5 6 3进行排序,并在将数组按升序和降序排序时显示每次选择排序更改时的内容时,需要执行哪些步骤来确定算法的Big-Oh表示法?在我想出一个Java程序对元素进行升序和降序排序之前,我需要对Big-Oh表示法进行评估
发布于 2018-12-01 03:49:33
当找到任何算法的Big Oh时,您必须计算算法中执行的指令数量,通常是通过找到执行这些指令的模式来实现。您还必须考虑在最坏的情况下出现的指令(即,在搜索列表时,最坏的情况是访问每个元素)。对于选择排序,算法的简化分解是,对于n个元素的列表,将每个元素与列表中的其他元素进行比较。对于每个元素,基本上也会发生元素的切换和n个元素的打印。在代码中大致如下所示:
每n个元素的
-Go遍历列表,并与元素右侧的所有其他元素进行比较
-If右子数组的最小元素小于当前元素,开关
数组中的-Print n个元素。
所以这看起来像n*(n+1+n),本质上是O( n^2 )如果你的算法想同时做升序和降序,它会使仍然是O(n^2)的n^2加倍。
https://stackoverflow.com/questions/52880503
复制相似问题