随笔分类 -  算法

摘要:https://www.lanqiao.cn/problems/3824/learning eg: n = 1234, k = 2 可以简单的列出这些选项: ● 1 + 2 + 34 ● 1 + 23 + 4 ● 12 + 3 + 4 利用 DFS 和回溯的思想,程序推导如下: 将 n 分成左右两部 阅读全文
posted @ 2024-04-04 17:54 王舰 阅读(32) 评论(0) 推荐(0)
摘要:一、概述 以下文字摘自《数据结构与算法分析 C语言描述》 ​ 编译器检查程序的语法错误,但是常常由于缺少一个符号(如遗漏一个花括号或注释起始符)引起编译器列出上百行的诊断,而真正的错误并没有找出。 ​ 在这种情况下,可以使用一个程序来检验是否每个符号都成对出现。于是,每一个右花括号、右方括号及右圆括 阅读全文
posted @ 2022-04-07 11:39 王舰 阅读(247) 评论(0) 推荐(1)
摘要:## 一、算法描述 选择排序是从待排序数组中通过比较选择最小(最大)的元素,将其放在数组的前面(后面)。重复遍历选择多次直到数组有序。遍历一次即找到当前未排序数组的最小(最大)值,那么剩下最后一个元素一定是最大(最小)的,最后一次遍历就不需要了,假设数组大小未n,就要遍历 n - 1次,也即是外层循 阅读全文
posted @ 2022-04-07 11:37 王舰 阅读(416) 评论(0) 推荐(1)
摘要:## 一、算法描述 假设待排序数组有 N 个整数,且范围是 1 到 M(或 0 到 M - 1)。留置一个数组称为 buckets,大小为 M,并初始化为 0。所以数组 buckets 有 M 个单元(或 “桶” ),开始的时候它们都是空的。遍历待排序数组,当 a~i~ 读入时 buckets[a~ 阅读全文
posted @ 2022-04-07 11:37 王舰 阅读(198) 评论(0) 推荐(1)
摘要:## 一、算法描述 比较相邻两个元素,如果第一个比第二个大则交换两个值。遍历所有的元素,每一次都会将未排序序列中最大的元素放在后面。假设数组有 n 个元素,那么需要遍历 n - 1 次,因为剩下的一个元素一定是最小的,无需再遍历一次。因此需要两层循环,第一层是遍历次数,第二层是遍历未排序数组。 动图 阅读全文
posted @ 2022-04-07 11:35 王舰 阅读(312) 评论(0) 推荐(1)
摘要:质数就是大于等于2且只能被它本身及1整除的数,百度上关于质数的性质和相关的公式还有很多,不过有点高深难懂,尤其是对我这个数学不好的人来说。 网上python判断质数的方法大多是下面这种: from math import sqrt def is_prime(n): if n == 1: print( 阅读全文
posted @ 2022-04-06 14:33 王舰 阅读(460) 评论(0) 推荐(0)