- 博客(6)
- 收藏
- 关注
原创 【无标题】
data.append([float(parts[0]), float(parts[1])]) # 选择萼片长度和宽度。if parts[-1] in ['Iris-setosa', 'Iris-versicolor']: # 选择两个类别。if update <= 0: # 分类错误。if line.strip(): # 跳过空行。# 更新规则:y * (w·x + b)
2024-11-19 19:16:34
1013
原创 数据降维算法测试
if (m == 0) { // 第一行,计算特征数。// 最后一个数后面没有分隔符。// 从协方差矩阵中减去这个主成分的影响。printf("\n降维后的数据:\n");// [保持原有的矩阵运算辅助函数和其他函数不变]printf("原始数据:\n");// 首先计算每个特征的平均值。// 分配降维后的数据内存。// 幂法求最大特征值和特征向量。// 首先计算行数和列数。// 重置文件指针到开头。// 计算前k个主成分。// 计算协方差矩阵。// 初始化特征向量。// 计算协方差矩阵。
2024-11-18 16:21:50
801
原创 经ai改进后的动态规划法求最长公共子序列算法(2)
上述代码的时间复杂度主要由动态规划表的填充过程决定。在最坏情况下,动态规划表的填充需要 (O(m \times n)) 的时间,其中 (m) 和 (n) 分别是两个字符串的长度。
2024-10-10 20:33:24
541
原创 经ai改进后的动态规划法求最长公共子序列(1)
原代码中,对于每一个找到的 LCS 结束位置,都需要进行一次回溯操作,时间复杂度为 O(m*n * cnt),其中 cnt 是 LCS 的个数,最坏情况下 cnt 可以达到 O(min(m, n))。这个改进版本的核心思想是避免重复的回溯操作,通过一次遍历和递归打印,提高了效率,尤其是在 LCS 数量较多的情况下。需要注意的是,递归深度可能比较大,在处理非常长的字符串时,需要考虑栈溢出的风险。此外,如果只需要找到一个 LCS,而不是所有 LCS,那么时间复杂度可以进一步降低到 O(m*n)。
2024-10-10 20:32:07
328
原创 自底向上归并排序算法
/从当前mid+1坐标开始将n2个元素动入rightarr中。//每轮排序、合并结束后,子数组变为合并后的长度,即原来的两倍。}//然后i作为下一此排序、合并的left值需要加上两个子数组的长度(2*w)//width为进行排序前每个子数组的长度,初始为1。}//直到最后一轮子数组合并后,其长度已经大于原数组的总长度时,排序完成。}//由用户直接输入待排序数组的每个元素(不需要提前输入元素总个数)printf("请输入数组的元素(输入-1结束):\n");
2024-10-10 20:08:39
750
原创 动态规划法求最长公共子序列
/rec数组用于记录各最长子序列的结束点在矩阵中的出现位置的坐标(i、j)dp[i + 1][j + 1] = dp[i][j + 1] + 1;//回溯时,当前元素若比其上一行同列的元素大,证明发生了L25、L26,则将a[]中对应元素录入record。
2024-10-09 19:20:29
676
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅