- 博客(4)
- 收藏
- 关注
原创 递推与递归
递推是一种通过已知的初始条件和递推公式来求解问题的方法。在递推中,通过迭代地应用递推公式,从而逐步得到问题的解。递推算法通常是使用循环结构实现的,其中每次迭代都更新变量的值,直至满足终止条件。递归是一种将问题分解成更小规模子问题并通过调用自身来解决的方法。在递归中,函数或过程会反复调用自身,直到达到基本情况(终止条件),然后通过回溯的方式逐步求解整个问题。递归深度过大可能导致堆栈溢出,递归调用的开销较大等。
2023-10-07 00:28:43
44
1
原创 排排排排序
快速排序:选择一个基准元素,将列表分为左右两部分,左边的元素都小于基准,右边的元素都大于基准,然后递归地对左右子数组进行快速排序。冒泡排序:通过多次迭代比较相邻元素,并交换顺序,将最大(或最小)的元素逐步“冒泡”到列表的末尾。插入排序:将列表分为已排序和未排序两部分,逐个将未排序元素插入到已排序部分的合适位置。归并排序:将列表递归地分成两部分,对每个部分进行排序,然后将它们合并为一个有序列表。选择排序:每次从待排序列表中选择最小(或最大)的元素,放置在已排序列表的末尾。
2023-10-07 00:14:33
55
1
原创 前缀和与差分
二维前缀和是指将一个二维数组中每个位置的元素与其左上方所有元素的和累加得到的新的二维数组。对于一个大小为n×m的二维数组a,其二维前缀和数组sum可以通过以下公式计算得到:sum[i][j] = a[i][j] + sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1]。具体来说,对于一个大小为n×m的二维数组a,其二维差分数组diff可以通过以下公式计算得到:d[i][j] = a[i][j] - a[i-1][j] - a[i][j-1] + a[i-1][j-1]。
2023-10-03 19:28:20
48
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人