首页 文章
  • 2 votes
     answers
     views

    选择排序,插入排序和快速排序的方案

    如果有人能对我的逻辑给出一些意见,我会非常感激 . 对于所有键相同,选择排序或插入排序的数组,哪种方法运行得更快? 我认为这与数组已经排序时类似,因此插入排序将是线性的,选择排序是二次的 . 对于数组,哪种方法以相反的顺序,选择排序或插入排序运行得更快? 我认为它们的运行方式类似,因为每个位置的值都必须改变 . 插入排序的最坏情况是逆序,因此这意味着它是二次的,然后选择排序也已经是二次的 ...
  • 2 votes
     answers
     views

    什么类型的输入区分插入排序和选择排序?

    在什么样的测试用例中插入排序比选择排序更好?清楚地描述测试用例 . 为什么选择排序比该测试用例中的插入排序更差? 我回答了第一个问题: O(n2) . 当插入排序给出一个列表时,它接受当前元素并将其插入列表的适当位置,每次插入时调整列表 . 它类似于在纸牌游戏中安排卡片 . 第二个问题: 因为Selection Sort总是进行n(n-1)/ 2次比较,但在最坏的情况下,它只会进行n-1...
  • 1 votes
     answers
     views

    为什么我的选择排序比插入排序慢

    我正在尝试编写选择排序和插入排序的实现 . 并使用自动生成的数组对它们进行测试,并使用Posix gettimeofday 以u-second精度评估耗时,在 MAC OS 下 . 但在大多数情况下,总输入 65525 和 -65525 和 +65525 输入数组的范围,插入排序远比选择排序快,大约一半的时间 . 实施见下文: void selectionSort (vector<int&...
  • 0 votes
     answers
     views

    具有给定反转次数的列表的冒泡排序和插入排序的复杂性

    设列表的长度为n,反转次数为d . 为什么插入排序在O(n d)时间运行,为什么冒泡不排序? 当我考虑这个问题时,我正在考虑最糟糕的情况 . 由于反转的最坏情况是n(n-1)\ 2,因此气泡和插入排序都在同一时间运行 . 但后来我不知道如何回答这个问题,因为我发现它们是一样的 . 有人可以帮我弄这个吗?
  • 0 votes
     answers
     views

    比较气泡,选择和插入排序效率

    我有以下理解 - 泡泡和插入排序都有时间复杂性 最佳:Ω(n) 平均值:Θ(n ^ 2) 最差:O(n ^ 2) 选择排序具有所有时间复杂性(最佳,平均和更差):( n ^ 2) 在此之后,根据我通常听到的关于这些算法的内容,我的问题是 - 气泡排序被认为是效率最低的算法/与选择排序相同 . 为什么这样? (因为我知道,根据Ω,冒泡排序比选择要好得多 . ) 插入排序被认为...
  • 13 votes
     answers
     views

    插入使用二进制搜索排序

    在实现插入排序时,可以使用二进制搜索来定位要插入元素i的数组的第一个i-1元素内的位置 . 这将如何影响所需的比较次数?如何使用这样的二进制搜索影响Insertion Sort的渐近运行时间? 我很确定这会减少比较次数,但我不确定为什么 .
  • 0 votes
     answers
     views

    插入排序不起作用,32位组装

    我正在尝试使用NASM在Linux中实现32位汇编中的插入排序,并且我在运行中遇到了分段错误(更不用说由于某种原因'printf'打印随机垃圾值,我不完全确定原因),这里是代码:section .rodata MSG:DB“欢迎来sortMe,请排序我”,10,0 S1:DB“%d”,10,0; 10 ='\ n',0 ='\ 0' section .data array DD 5,1,7,...
  • 0 votes
     answers
     views

    为什么选择排序比冒泡排序更快,以及插入排序如何最快

    我编写了一个程序来对数字进行排序,从1到1,000,使用三种不同的排序,然后测量每个单独排序所花费的时间 . 结果如下:(我在python中编写了我的代码,时间以秒为单位,最差情况是按降序排列的数组,最好的情况是升序排列) Worst case : 选择排序:timetaken:0.0629999637604 冒泡排序:timetaken:0.141000032425 插入排序:tim...

热门问题