Sorting 气泡/简单排序的运行时
在类中,简单排序被用作我们对O(N)运行时的第一个定义之一 但是,既然它每次运行时都少经过一次数组迭代,那么它不是更符合 运行时气泡=总和(i=0,n,(n-i)) 不仅仅是一个接一个地运行的最大的过程在渐近分析中被算作N次迭代,为什么根据定义这种排序不是O(N)?我不确定你(或你的教授)从哪里得到了冒泡排序是O(N)的概念。如果你的教授有一个有保证的O(n)排序算法,他们最好尝试并申请专利:-) 泡泡排序,本质上是O(n2) 这是因为它必须完整地传递整个数据集,才能正确地放置第一个元素 然后第二次通过Sorting 气泡/简单排序的运行时,sorting,data-structures,runtime,theory,Sorting,Data Structures,Runtime,Theory,在类中,简单排序被用作我们对O(N)运行时的第一个定义之一 但是,既然它每次运行时都少经过一次数组迭代,那么它不是更符合 运行时气泡=总和(i=0,n,(n-i)) 不仅仅是一个接一个地运行的最大的过程在渐近分析中被算作N次迭代,为什么根据定义这种排序不是O(N)?我不确定你(或你的教授)从哪里得到了冒泡排序是O(N)的概念。如果你的教授有一个有保证的O(n)排序算法,他们最好尝试并申请专利:-) 泡泡排序,本质上是O(n2) 这是因为它必须完整地传递整个数据集,才能正确地放置第一个元素 然后第
N-1
元素来正确放置第二个元素。第三次通过N-2
元素来正确放置第三个元素
以此类推,有效地结束了接近
N*N/2的运算,除去多余的0.5
常数,即O(n2)。是1+2+…+的和N
是N*(N+1)/2
。。。(高中数学)。。。当N
变为无穷大时,它接近(N^2)/2
。经典的O(N^2)
冒泡排序的时间复杂度为O(N^2)。
考虑复杂性时,只考虑最大表达式(但不考虑因子)