C#核心知识回顾——7.递归、冒泡排序、选择排序

news/2024/11/7 12:37:29/

1.递归

private void Start(){Fun(0);}/// <summary>/// 递归函数,自己调用自己/// </summary>void Fun(int a){//4.结束条件if (a > 10){return;}//2.完成要求,打印Debug.Log(a);//3.完成递归变化,作为判断条件++a;//1.构造递归Fun(a);}

练习1:使用递归求1!+2!+3!+4!+5!+……+10!

 private void Start(){Debug.Log(FunJieCheng(10));}    int FunJieCheng(int a){if (a == 1) { return 1; }int result = 1;for (int i = 1; i <= a; i++){result *= i;}return result + FunJieCheng(a - 1);}

练习2:一根竹竿长100m,每天砍掉一半,求第十天它的长度是多少

  private void Start(){Debug.Log(FunJieCheng(0));}float j = 100f;float FunJieCheng(int a){if(a > 10){Debug.Log(j);return j;}j = j / 2;++a;Debug.Log(j);return FunJieCheng(a);}

2.冒泡排序:

 bool isSort = false;int[] arry = {8,9,3,4,2,6};//第三步,有几个数就进行几轮for (int j = 0; j < arry.Length; j++){isSort = false;//第一步对比i和i+1相邻两个数//!!!!!!!!!!!!!!!!!!!!! 确实位置的数字不用继续比较 !!!!!!!!!!!!!!!!!!!!!!!!!!//!!!!!!!!!!!!!!!!!!!!! 每完成j轮,后面位置的数就不用比较了 !!!!!!!!!!!!!!!!!for (int i = 0; i < arry.Length - 1- j; i++){//如果i大于i+1,交换他们的位置if (arry[i] > arry[i + 1]){isSort = true;//第二步,交换位置int temp = arry[i];arry[i] = arry[i + 1];arry[i + 1] = temp;}}//每一轮结束后,如果isSort还是false,就说明不需要在排序了!!!!!!!!!!!!!!!!!!if(!isSort){break;}}for (int i = 0; i < arry.Length; i++){Debug.Log(arry[i]);}

3.选择排序

int[] arry = {8,3,7,4,5,6};//第五步,遍历j轮for (int j = 0; j < arry.Length; j++){//第一步声明中间商记录索引int index = 0;//第二步 依次比较(去掉已经放好的位置)for (int i = 0; i < arry.Length - j; i++){//第三步找出极值if (arry[index] < arry[i]){index = i;}}//第四步。把极大值放到目标位置//length - 1 - 轮数//如果当前最大值就在目标位置,不需要操作if (index != arry.Length - j){int temp = arry[index];arry[index] = arry[arry.Length - 1 - j];arry[arry.Length - 1 - j] = temp;}}


http://www.ppmy.cn/news/732009.html

相关文章

GDP开源软件汇总

https://github.com/EwingYangs/awesome-open-gpt

台式电脑重置网络

确保有网络的情况下&#xff0c;电脑网络有红叉 说明&#xff1a; 本人是台式电脑&#xff0c;出现网络连接不上&#xff0c;在确保是自动获取IP地址和更新驱动也没用的情况下&#xff0c;用网上的方法&#xff0c;重置网络&#xff0c;就可以连接了1.开始→运行→输入:CMD&a…

电脑重置系统后,鼠标右键点击桌面一直转圈,任务栏又可以点击……

目录 1&#xff0c;问题 2&#xff0c;原因 3&#xff0c;解决方法 4&#xff0c;心得体会 1&#xff0c;问题 不知道神马情况&#xff0c;昨天晚上关闭电脑时进行了“更新后关机”&#xff0c;然后今天早上起来&#xff0c;当再次打开电脑的时候&#xff0c;就很懵逼的出…

计算机电脑重置,如果Lenovo计算机无法重置计算机该怎么办

尝试以下方法和步骤来解决: 1. 下载所需的工具和要安装的Windows正式版的映像文件&#xff1b; 2. 打开下载的Onekey鬼映像安装程序&#xff1b; 3. 打开软件后&#xff0c;在Onekey中选择还原分区&#xff0c;然后选择刚刚下载到GHO WIM ISO映像路径中的Windows官方系统映像&a…

win10重置计算机卡10%,手把手解答win10电脑重置时卡死的详尽解决方法

我们在使用win10系统的过程中难免会遇到win10电脑重置时卡死问题&#xff0c;很多网友都没有关于win10电脑重置时卡死的问题的处理经验&#xff0c;要是想自己学习学习解决win10电脑重置时卡死的方法&#xff0c;也是可以的&#xff0c;只需要一步一步的这样操作&#xff1a;1、…

电脑重置后恢复mysql服务

描述: 电脑在重置或重装后&#xff0c;如果之前的mysql文件还在&#xff0c;则可以直接恢复&#xff0c;保留之前的数据和配置&#xff0c;不需要重新下载mysql。 1.以管理员身份打开cmd&#xff0c;进入mysql的bin目录&#xff0c;输入mysqld install mysql&#xff08;mysq…

grok使用(将日志结构化)

1.前言 Grok是一种强大的日志解析工具&#xff0c;用于将结构化和非结构化的日志数据转换为可查询和分析的格式。它是由Elasticsearch的Logstash组件提供的一种插件&#xff0c;也可以作为独立的库在其他数据处理工具中使用&#xff0c;Grok通过使用预定义的模式&#xff08;正…

Mac电脑 重设开机密码

1、因为我用的是iMac&#xff0c;所以会有无线鼠标和无线键盘,这个不影响&#xff0c; 2、 3、 4、这里要注意&#xff1a;输入命令&#xff1a;resetpassword 按回车键方可。&#xff08;可别学我啊 中间可没有空格键&#xff09; 5、按照提示&#xff0c;在右侧输入完重设密码…