首页 > 编程语言 >c# .Net 常见算法

c# .Net 常见算法

时间:2024-01-25 17:45:30浏览次数:28  
标签:c# List void list int 算法 static Net arry

  1 using System.Collections.Generic;
  2 using System.ComponentModel.Design;
  3 using System.Linq;
  4 
  5 namespace TestDelay
  6 {
  7     internal class Program
  8     {
  9         static void Main()
 10         {
 11             int[] arry = new int[] { 12, 32, 434, 56, 2, 1, 9, 0 };
 12             BubbleSort(arry);
 13             Console.WriteLine("冒泡排序:" + string.Join(",", arry));
 14 
 15             Demo1(7);
 16             Reverse("I am a good man");
 17 
 18             Demo2(4);
 19 
 20             Demo3(30);
 21         }
 22         /// <summary>
 23         /// 冒泡排序
 24         /// </summary>
 25         /// <param name="arry"></param>
 26         public static void BubbleSort(int[] arry)
 27         {
 28             for (int i = 0; i < arry.Length - 1; i++)
 29             {
 30                 for (int j = i + 1; j < arry.Length; j++)
 31                 {
 32                     if (arry[i] > arry[j])
 33                     {
 34                         var temp = arry[i];
 35                         arry[i] = arry[j];
 36                         arry[j] = temp;
 37                     }
 38                 }
 39             }
 40         }
 41 
 42         /// 求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
 43         /// 拆分为(1-2)+(3-4)+(5-6)+...+m
 44         /// </summary>
 45         /// <param name="m"></param>
 46         public static void Demo1(int m)
 47         {
 48             #region 第一种方式
 49             int result1 = 0;
 50             if (m % 2 == 0)
 51                 result1 = -(m / 2);
 52             else
 53                 result1 = -(m - 1) / 2 + m;
 54             #endregion
 55             #region 第二种方式
 56             int result2 = 0;
 57             for (int i = 1; i <= m; i++)
 58             {
 59                 if (i % 2 == 0)
 60                     result2 = result2 - i;
 61                 else
 62                     result2 = result2 + i;
 63             }
 64             #endregion
 65             Console.WriteLine(result1 == result2);
 66         }
 67 
 68         /// <summary>
 69         /// 有一个字符串 "I am a good man",设计一个函数,返回 "man good a am I"。
 70         /// </summary>
 71         /// <param name="str"></param>
 72         public static void Reverse(string str)
 73         {
 74             var strArry = str.Split(" ");
 75             var result1 = string.Join(" ", strArry.Reverse());
 76             List<string> list = new List<string>();
 77             for (int i = strArry.Length - 1; i >= 0; i--)
 78             {
 79                 list.Add(strArry[i]);
 80             }
 81             var result2 = string.Join(" ", list);
 82             Console.WriteLine(result1 == result2);
 83         }
 84 
 85         /// <summary>
 86         /// 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
 87         /// </summary>
 88         /// <param name="number"></param>
 89         public static void Demo2(int number)
 90         {
 91             List<string> list = new List<string>();
 92             for (int b = 1; b <= number; b++)
 93             {
 94                 for (int s = 1; s <= number; s++)
 95                 {
 96                     if (b != s)
 97                     {
 98                         for (int g = 1; g <= number; g++)
 99                         {
100                             if (b != s && b != g && s != g)
101                                 list.Add($"{b}{s}{g}");
102                         }
103                     }
104                 }
105             }
106             Console.WriteLine($"1-{number},共有:{list.Count}个不重复三位数,分别是:{string.Join(",", list)}");
107         }
108 
109 
110         /// <summary>
111         /// 1、1、2、3、5、8、13、21、34,....⽤C#递归写出算法,算出第30个数。
112         /// </summary>
113         /// <param name="number"></param>
114         public static void Demo3(int number)
115         {
116             List<int> list= new List<int>();
117             Recursion(0, list);
118             var result = string.Join(" ", list);
119         }
120         /// <summary>
121         /// 1、1、2、3、5、8、13、21、34,....⽤C#递归写出算法,算出第30个数
122         /// </summary>
123         /// <param name="number"></param>
124         /// <param name="list"></param>
125         public static void Recursion(int number, List<int> list)
126         {
127             if (number <= 1)
128                 list.Add(1);
129             else
130                 list.Add(list[list.Count - 2] + list[list.Count - 1]);
131             if (number < 30)
132                 Recursion(number + 1, list);
133         }
134     }
135 
136 
137 
138 
139 
140 
141 
142 
143 
144 }

 

标签:c#,List,void,list,int,算法,static,Net,arry
From: https://www.cnblogs.com/aaaaq/p/17987764

相关文章

  • COCO数据集介绍
    数据集介绍MSCOCO的全称是MicrosoftCommonObjectsinContext,起源于微软于2014年出资标注的MicrosoftCOCO数据集,与ImageNet竞赛一样,被视为是计算机视觉领域最受关注和最权威的比赛之一。该数据集特点如下:ObjectsegmentationRecognitionincontextSuperpixelstuffseg......
  • 行业应用 | Sophon AutoCV推动AI应用从模型生产到高效落地
    随着技术市场和应用方向的逐渐成熟,人工智能与各行各业的结合和落地逐渐进入了深水区。虽然由于行业规模化和应用普及度的限制,人工智能在“传统”行业的落地不如消费互联网行业,但是借助人工智能为“传统”行业的发展注入新能量一直是相关从业者探索的方向和创造数据价值的重要途径。......
  • 技术解读 | KunDB助力头部金融机构关键系统的Oracle国产替代
    星环科技自主研发的分布式交易型数据库KunDB助力头部金融机构实现了关键系统的Oracle国产化替代。通过可视化迁移工具完成了对象与数据的平滑迁移,将原先两套Oracle系统(一套Oracle单机系统,一套OracleRAC系统)统一迁移到一套KunDB集群。并且基于常规国产服务器使得每日增量数据处理性......
  • 详解ElasticSearch Python Client ReadTimeout
    详解ElasticSearchPythonClientReadTimeout在使用Python连接Elasticsearch时,我们经常会遇到一些异常情况,其中之一就是ReadTimeout错误。本文将详细介绍这个错误的原因以及如何处理。什么是ReadTimeout错误?ReadTimeout错误通常是由Elasticsearch连接超时引起的。当在与Elasticsea......
  • Comparison between IPQ9574 and IPQ9554 | MLO EHT Solution Unveils the WiFi 7 CPU
    ComparisonbetweenIPQ9574andIPQ9554|MLOEHTWiFi7QualcommSolutionUnveilstheWiFi7CPUforIndustrialApplications-AlderSeriesWi-Fi7elevateswirelessexperiencesandwillaccelerateemergingusecaseswithitsextremedataspeedsandconsis......
  • 17 位社区大咖寄语,Seata 进入 Apache 孵化器
    北京时间2023年10月29日,分布式事务开源项目Seata正式通过Apache基金会的投票决议,以全票通过的优秀表现正式成为Apache孵化器项目!根据Apache基金会邮件列表显示,在包含13个约束性投票(bindingvotes)和6个无约束性投票(non-bindingvotes)的投票全部持赞同意见......
  • [Mac软件]DoubleTake for Mac(全景拼图软件) v2.6.12 (1086) 激活版本
    DoubleTakeforMac是一款功能强大的全景拼图软件,专为Mac用户设计,可以帮助用户轻松地将多张照片拼接成一张全景图像。这款软件具有直观的用户界面和丰富的功能,使得全景图像的制作变得简单快捷。本文将详细介绍DoubleTakeforMacv2.6.12激活版本的特点和功能。首先,DoubleTakefor......
  • 基于Apache PDFBox的PDF数字签名
    在Java语言环境中完成数字签名主要基于itext-pdf、PDFBox两种工具,itext-pdf受商业限制,应用于商业服务中需要购买授权。PDFBox是apache基金会开源项目,基于apache2.0开源协议,不受商业限制,开发者可放心使用。以下是基于PDFBox的数字签名源码,使用该源码可使用PDFBox对PDF格式的文件进行......
  • solution-at-agc044-c
    stonantforz正文算得上相当有意思以及启发性的数据结构题了。三进制表示联想到我们可以建立一个三叉树。类似于Trie一样的,按三进制从低位到高位建立一个Trie树。一个非常好的性质这是一个完美三叉树。接下来我们可以考虑怎么维护每一种操作。Salasa舞对于这种操作,相......
  • 三、kubernetes 集群 YAML 文件详解
    1、YAML文件概述k8s集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到YAML格式文件中,我们把这种文件叫做资源清单文件,通过kubectl命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署了。2、YA......