gpt4 book ai didi

c - 希尔排序仅比冒泡排序快 3 倍?

转载 作者:行者123 更新时间:2023-11-30 16:58:48 25 4
gpt4 key购买 nike

我已经用 C 实现了希尔排序,它只比冒泡排序快 3 倍左右。以下是我的排序持续时间(以秒为单位):

For list of 100 integers:
BubbleSort: 0.000333
ShakeSort: 0.000282
QuickSort: 0.000048
QuickSort_Iter: 0.000063
InsertionSort: 0.000188
ShellSort: 0.000150

For list of 1000 integers:
BubbleSort: 0.028191
ShakeSort: 0.019354
QuickSort: 0.000435
QuickSort_Iter: 0.000528
InsertionSort: 0.011917
ShellSort: 0.003664

For list of 5000 integers:
BubbleSort: 0.241116
ShakeSort: 0.222127
QuickSort: 0.001306
QuickSort_Iter: 0.001592
InsertionSort: 0.151656
ShellSort: 0.091002

For list of 10000 integers:
BubbleSort: 0.959580
ShakeSort: 0.872648
QuickSort: 0.002877
QuickSort_Iter: 0.003379
InsertionSort: 0.601329
ShellSort: 0.350866

这正常还是我的实现可能有问题?

最佳答案

我有一个排序基准测试程序,内置了 4 种希尔排序和冒泡排序的变体。这四种变体中的三个具有相似的计时属性;第四个比其他三个差得多。然而,当排序大小为 1000 时,3 个 shell 排序需要不到 100μs,而慢速排序需要不到 600μs,冒泡排序需要不到 900μs,但在大小为 10,000 时,时间在 1-2ms 与 70ms 与 142ms 之间变化,当大小为 100,000 时,时间在 14-30 毫秒、8.6 秒和 18 秒之间变化。因此,其中一种希尔排序的速度大约是冒泡排序的一半,但其他排序要好得多。 – 乔纳森·莱夫勒

好吧,我改变了实现,在希尔排序期间使用插入排序逻辑对子 vector 进行排序,所以现在它按预期执行 - LynnXe

关于c - 希尔排序仅比冒泡排序快 3 倍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38540118/

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