827 次浏览
这是非比较排序技术的示例。它用于项的数量和可能键值的范围大致相同的情况。要执行此排序,我们需要建立一些空位。所需空位数量由数字范围决定。在每个空位中插入项目。最后从空位中删除并存储到数组中以为排序顺序。鸽巢排序技术的复杂性时间复杂度:O(n+2^k)空间复杂度:O(2^k)输入和输出输入:未排序列表:802 630 20 745 52 300 612 932 78 187 输出:排序前的数据:802 630 20 745 ... 阅读更多
688 次浏览
循环排序是一种就地排序算法。它也是一种基于比较的排序,且针对任何其他就地排序技术都是高效的。它找出执行排序任务时最小写入内存的次数。循环排序技术的复杂度时间复杂度:O(n^2)空间复杂度:O(1)输入和输出输入:一个无序数据列表:23 63 98 74 20 14 36 45 99 78 输出:排序前数组:23 63 98 74 20 14 36 45 99 78 排序后数组:14 20 23 36 45 63 74 78 98 99algorithmscycleSort(array, size)输入——一个数据数组和总数量... 阅读更多
1K+ 浏览量
梳排序和冒泡排序的基本思路是相同的。换言之,梳排序是对冒泡排序的改进。在冒泡排序技术中,每一趟都将各元素与下一元素进行比较。但是在梳排序中,元素是按特定的间隔进行排序的。完成每一趟后,间隔就会减少。这种排序的缩减因子或收缩因子为 1.3。这意味着在完成每一趟后,间隔将除以 1.3。梳排序技术的复杂度时间复杂度:对于最坏情况,是 O(n log n)。O(n^2/2^p)(p ... 阅读更多