#分治法
南方-D
乾坤未定,你我皆是黑马
展开
-
算法设计与分析—归并排序
题目描述: 归并排序 使用排序算法将数组内容进行排序,时间复杂度要低于O(n^2) 示例 1: 输入: nums = [2, 4, 2, 6, 7, 0, 1] 输出: nums = [0, 1, 2, 2, 4, 6, 7] 算法实现: 解题思路 归并算法类似于两个有序数组合并成一个新的有序数组的算法, 1、利用递归将数组分为两半,然后再对半分,直到分成单个数据 2、将两个分开的有序数据利用归并算法合并成一个新的数组。 def mergeSort(nums, left, right, new_num原创 2021-09-30 16:51:07 · 279 阅读 · 0 评论 -
算法设计与分析— 汉诺塔问题(分治法)
算法设计与分析课程练习题: 汉诺塔问题(分治法) 在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制: (1) 每次只能移动一个盘子; (2) 盘子只能从柱子顶端滑出移到下一根柱子; (3) 盘子只能叠在比它大的盘子上。 请编写程序,用栈将所有盘子从第一根柱子移到最后一根柱子。 你需要原地修改栈。 a) 算法思路 1、先推出表达式,将大问题一直分解成两个小原创 2021-11-07 11:06:39 · 488 阅读 · 0 评论