随笔分类 -  算法题

摘要:题目 用两个线程,一个输出字母,一个输出数字,交替输出 1A2B3C4D...26Z 代码示例 using System; using System.Threading; using System.Threading.Tasks; public class NumberLetterPrinter { 阅读全文
posted @ 2024-12-14 11:33 似梦亦非梦 阅读(30) 评论(0) 推荐(0) 编辑
摘要:题目 多线程按顺序调用,A->B->C,AA 打印 5 次,BB 打印10 次,CC 打印 15 次,重复 10 次 代码示例 using System; using System.Threading; using System.Threading.Tasks; public class ABCPr 阅读全文
posted @ 2024-12-14 11:33 似梦亦非梦 阅读(12) 评论(0) 推荐(0) 编辑
摘要:题目 通过 N 个线程顺序循环打印从 0 至 100 代码示例 using System; using System.Threading; using System.Threading.Tasks; public class ZeroEvenOdd { private int n = 100; pr 阅读全文
posted @ 2024-12-14 11:33 似梦亦非梦 阅读(14) 评论(0) 推荐(0) 编辑
摘要:题目 两个线程交替打印 0~100 的奇偶数 代码示例 using System; using System.Threading; using System.Threading.Tasks; public class ZeroEvenOdd { private int n = 100; privat 阅读全文
posted @ 2024-12-14 11:32 似梦亦非梦 阅读(24) 评论(0) 推荐(0) 编辑
摘要:题目 三个线程分别打印 A,B,C,要求这三个线程一起运行,打印 n 次,输出形如“ABCABCABC....”的字符串 代码示例 public class ZeroEvenOdd { private int n; private AutoResetEvent aEvent = new AutoRe 阅读全文
posted @ 2024-12-14 11:32 似梦亦非梦 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题目: class ZeroEvenOdd { public ZeroEvenOdd(int n) { ... } // 构造函数 public void zero(printNumber) { ... } // 仅打印出 0 public void even(printNumber) { ... 阅读全文
posted @ 2024-12-14 11:32 似梦亦非梦 阅读(17) 评论(0) 推荐(0) 编辑
摘要:程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。 思路: 1、构造出Cat、Mouse、Master三个类,并能使程序运行。 2、从Mouse和Master中提取抽象。 3、联动效应,只要执行Cat.Cryed()就可以使老鼠逃跑,主人惊醒。 通过这个例子,可以看出,委托事件的应用是极其面向 阅读全文
posted @ 2024-12-14 11:32 似梦亦非梦 阅读(93) 评论(0) 推荐(0) 编辑
摘要:1.递归算法 1.1 C#递归算法计算阶乘的方法 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。 原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=( 阅读全文
posted @ 2024-12-14 11:31 似梦亦非梦 阅读(38) 评论(0) 推荐(0) 编辑
摘要:前言 今天我们主要总结一下C#面试中常见递归算法。 C#递归算法计算阶乘的方法 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。 原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递 阅读全文
posted @ 2024-12-14 11:31 似梦亦非梦 阅读(21) 评论(0) 推荐(0) 编辑
摘要:前言 哈希查找算法是一种高效的查找算法,通过将键值映射到哈希表中的位置来实现快速访问。在C#中,哈希查找通常通过哈希表(Hashtable)或字典(Dictionary)来实现。 实现原理 哈希函数:将键值转换成哈希值,该哈希值决定了键值在哈希表中的位置。 哈希表:一种数据结构,用于存储键值对。哈希 阅读全文
posted @ 2024-12-14 11:31 似梦亦非梦 阅读(22) 评论(0) 推荐(0) 编辑
摘要:二叉搜索树算法实现原理 二叉搜索树(Binary Search Tree,简称BST)是一种节点有序排列的二叉树数据结构。它具有以下性质: 每个节点最多有两个子节点。 对于每个节点,其左子树的所有节点值都小于该节点值,其右子树的所有节点值都大于该节点值。 实现基本步骤和代码示例 步骤 定义节点类:包 阅读全文
posted @ 2024-12-14 11:31 似梦亦非梦 阅读(15) 评论(0) 推荐(0) 编辑
摘要:前言 线性查找算法是一种简单的查找算法,用于在一个数组或列表中查找一个特定的元素。它从数组的第一个元素开始,逐个检查每个元素,直到找到所需的元素或搜索完整个数组。线性查找的时间复杂度为O(n),其中n是数组中的元素数量。 实现原理 从列表的第一个元素开始,逐个检查每个元素。 如果当前元素等于目标元素 阅读全文
posted @ 2024-12-14 11:30 似梦亦非梦 阅读(9) 评论(0) 推荐(0) 编辑
摘要:前言 二分查找算法是一种在有序数组中查找特定元素的搜索算法。 实现原理 二分查找的实现依赖于以下几个关键步骤: 计算查找范围的中间索引。 比较中间索引处的值与目标值。 根据比较结果调整查找范围(左半部分或右半部分)。 重复上述步骤直到找到目标值或查找范围为空。 代码实现 public class 二 阅读全文
posted @ 2024-12-14 11:30 似梦亦非梦 阅读(18) 评论(0) 推荐(0) 编辑
摘要:前言 基数排序是一种非比较性排序算法,它通过将待排序的数据拆分成多个数字位进行排序。 实现原理 首先找出待排序数组中的最大值,并确定排序的位数。 从最低位(个位)开始,按照个位数的大小进行桶排序,将元素放入对应的桶中。 将各个桶中的元素按照存放顺序依次取出,组成新的数组。 接着按照十位数进行桶排序, 阅读全文
posted @ 2024-12-14 11:30 似梦亦非梦 阅读(10) 评论(0) 推荐(0) 编辑
摘要:前言 桶排序是一种线性时间复杂度的排序算法,它将待排序的数据分到有限数量的桶中,每个桶再进行单独排序,最后将所有桶中的数据按顺序依次取出,即可得到排序结果。 实现原理 首先根据待排序数据,确定需要的桶的数量。 遍历待排序数据,将每个数据放入对应的桶中。 对每个非空的桶进行排序,可以使用快速排序、插入 阅读全文
posted @ 2024-12-14 11:29 似梦亦非梦 阅读(15) 评论(0) 推荐(0) 编辑
摘要:前言 计数排序是一种非比较性的排序算法,适用于排序一定范围内的整数。它的基本思想是通过统计每个元素的出现次数,然后根据元素的大小依次输出排序结果。 实现原理 首先找出待排序数组中的最大值max和最小值min。 创建一个长度为max-min+1的数组count,用于统计每个元素出现的次数。 遍历待排序 阅读全文
posted @ 2024-12-14 11:29 似梦亦非梦 阅读(11) 评论(0) 推荐(0) 编辑
摘要:前言 堆排序是一种高效的排序算法,基于二叉堆数据结构实现。它具有稳定性、时间复杂度为O(nlogn)和空间复杂度为O(1)的特点。 堆排序实现原理 构建最大堆:将待排序数组构建成一个最大堆,即满足父节点大于等于子节点的特性。 将堆顶元素与最后一个元素交换:将最大堆的堆顶元素与堆中的最后一个元素交换位 阅读全文
posted @ 2024-12-14 11:29 似梦亦非梦 阅读(9) 评论(0) 推荐(0) 编辑
摘要:快速排序实现原理 快速排序(Quick Sort)是一种常用的排序算法,它基于分治的思想,通过将一个无序的序列分割成两个子序列,并递归地对子序列进行排序,最终完成整个序列的排序。 其基本思路如下: 选择数组中的一个元素作为基准(pivot)。 将数组中小于等于基准的元素放在基准的左边,将大于基准的元 阅读全文
posted @ 2024-12-14 11:29 似梦亦非梦 阅读(21) 评论(0) 推荐(0) 编辑
摘要:前言 归并排序是一种常见的排序算法,它采用分治法的思想,在排序过程中不断将待排序序列分割成更小的子序列,直到每个子序列中只剩下一个元素,然后将这些子序列两两合并排序,最终得到一个有序的序列。 归并排序实现原理 将待排序序列分割成两个子序列,直到每个子序列中只有一个元素。 将相邻的两个子序列合并,并按 阅读全文
posted @ 2024-12-14 11:28 似梦亦非梦 阅读(15) 评论(0) 推荐(0) 编辑
摘要:前言 希尔排序简单的来说就是一种改进的插入排序算法,它通过将待排序的元素分成若干个子序列,然后对每个子序列进行插入排序,最终逐步缩小子序列的间隔,直到整个序列变得有序。希尔排序的主要思想是通过插入排序的优势,减小逆序对的距离,从而提高排序效率。 希尔排序实现原理 首先要确定一个增量序列(初始间隔), 阅读全文
posted @ 2024-12-14 11:28 似梦亦非梦 阅读(21) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示