827 次浏览
这个是非比较排序技术的示例。它用于物品数量和可能键值范围大致相同的情况。要执行此排序,我们需要创建一些孔洞。所需孔洞数量由数字范围决定。在每个孔洞中插入物品。最后从孔洞中删除并存储到数组中以进行排序。鸽笼排序技术的复杂性时间复杂度:O(n+2^k)空间复杂度:O(2^k)输入和输出输入:未排序列表:802 630 20 745 52 300 612 932 78 187 输出:排序前的数据:802 630 20 745 ... 阅读更多
689 次浏览
循环排序是一种就地排序算法。它也是一种基于比较的排序,且比任何其他就地排序技术更有效。它发现可用于执行排序任务的最少内存写入数。循环排序技术的复杂性时间复杂度: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 99 算法 cycleSort(array, size) 输入 - 一个数据数组,和总共 ... 阅读更多
超过 1000 次浏览
梳排序和冒泡排序的基本思想是一样的。换句话说,梳排序是对冒泡排序的一种改进。在冒泡排序技术中,每一阶段将项与下一项进行比较。但对于梳排序,按照特定间隙对项进行排序。在完成每一阶段后,间隙减少。此排序的递减因子或紧缩因子为 1.3。这意味着完成每一阶段后,间隙都会除以 1.3。梳排序技术的复杂性时间复杂度:对于最佳情况,为 O(n log n)。对于最差情况,为 O(n^2/2^p)(p ... 阅读更多