当前位置: 首页 > 知识库问答 >
问题:

插入和冒泡排序的平均事例复杂度分析

陶睿
2023-03-14

这个网站已经有一些关于这个话题的问题,但是在阅读了一些答案后,我感到困惑。

https://cs.stackexchange.com/questions/20/evaluating-the-average-time-complexity-of-a-given-bubblesort-algorithm

在上面的链接中,“Joe”的回答表示,平均而言,泡沫排序的掉期数量与平均反转数量相同,即(n)(n-1)/4。

然而

哪一个是正确的?有人能帮帮我吗?

共有1个答案

魏楷
2023-03-14

您的第一个链接计算预期的倒置数量(即互换),假设均匀分布。

第二个环节是计算迭代次数,即元素检查。

两者都是正确的。

 类似资料:
  • 我试图理解数据结构和不同的算法,然后我困惑于衡量冒泡排序时间复杂度。 现在每一个大O都表示最佳情况O(n)、Avg情况(n2)和最坏情况(n2),但当我看到代码时,发现在第一阶段内循环运行了n次,然后在第二阶段内循环运行了n-1和n-2等等。这意味着在每次迭代中,它的值都会下降。例如,如果我有一个[]={4,2,9,5,3,6,11},那么比较的总数将是-

  • 本文向大家介绍ruby实现的插入排序和冒泡排序算法,包括了ruby实现的插入排序和冒泡排序算法的使用技巧和注意事项,需要的朋友参考一下 1、插入排序 2、冒泡排序

  • 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位

  • 1. 前言 本节内容是排序算法系列之一:冒泡排序,主要讲解了冒泡排序的主体思路,选取了一个待排序的数字列表对冒泡排序算法进行了演示,给出了冒泡排序算法的 Java 代码实现,帮助大家可以更好地理解冒泡排序算法。 2. 什么是冒泡排序? 冒泡排序(Bubble Sort),是计算机科学与技术领域中较为简单的一种排序算法。 它重复地遍历要排序的序列,会依次比较两个相邻的元素,如果发现两个相邻的元素顺序

  • 冒泡排序 from typing import List """ 核心思想是循环length-1次,每次循序找出最大或者最小的一个数,每次比较相邻的两个数,如果大或者小就交换位置,每一次循环可以比较当次最大的一个数。 例如 3, 10, -1, 20,8 - 第一次循环 1. 指针下移指向 3 3和10比较 不交换 3 10 -1 20 8 2. 指针下移指向 10 10>-1 交换