当前位置:   article > 正文

C#,.NET常见算法

C#,.NET常见算法

1.递归算法

1.1.C#递归算法计算阶乘的方法

  1. using System;
  2. namespace C_Sharp_Example
  3. {
  4. public class Program
  5. {
  6. /// <summary>
  7. /// 阶乘:一个正整数的阶乘Factorial是所有小于以及等于该数的正整数的积,0的阶乘是1,n的阶乘是n!
  8. /// </summary>
  9. public static void Main()
  10. {
  11. int result = Factorial(5);
  12. Console.WriteLine("5的阶乘是:"+result);
  13. Console.ReadLine();
  14. }
  15. private static int Factorial(int v)
  16. {
  17. if(v == 0 || v == 1)
  18. {
  19. return 1;
  20. }
  21. else
  22. {
  23. return v * Factorial(v-1);
  24. }
  25. }
  26. }
  27. }

1.2.C#递归算法计算数组的和

  1. using System;
  2. namespace C_Sharp_Example
  3. {
  4. public class Program
  5. {
  6. /// <summary>
  7. /// 数组求和
  8. /// </summary>
  9. public static void Main()
  10. {
  11. int[] numbers = { 1,2,3,4,5};
  12. int sum = ArraySum(numbers,0);
  13. Console.WriteLine("数组的和是:"+sum);
  14. Console.ReadLine();
  15. }
  16. private static int ArraySum(int[] arr, int v)
  17. {
  18. if(v>=arr.Length)
  19. {
  20. return 0;
  21. }
  22. else
  23. {
  24. return arr[v] + ArraySum(arr, v + 1);
  25. }
  26. }
  27. }
  28. }

 1.3.C#递归算法实现斐波那契数列第三十位数字

  1. using System;
  2. namespace C_Sharp_Example
  3. {
  4. public class Program
  5. {
  6. /// <summary>
  7. /// 实现斐波那契数列的第三十位,已知斐波那契数列1,1,2,3,5,8,自身计算前二个之和
  8. /// </summary>
  9. public static void Main()
  10. {
  11. int n = 30;
  12. int result = feibonaqi(30);
  13. Console.WriteLine("斐波那契数列第三十位是:"+result);
  14. Console.ReadLine();
  15. }
  16. private static int feibonaqi(int v)
  17. {
  18. if(v <= 0)
  19. {
  20. return 0;
  21. }
  22. else if(v > 0 && v <=2)
  23. {
  24. return 1;
  25. }
  26. else
  27. {
  28. return feibonaqi(v - 1) + feibonaqi(v - 2);
  29. }
  30. }
  31. }
  32. }

1.4.C#递归算法计算1-100的和

  1. using System;
  2. namespace C_Sharp_Example
  3. {
  4. public class Program
  5. {
  6. /// <summary>
  7. /// 计算1-100-sum
  8. /// </summary>
  9. public static void Main()
  10. {
  11. int result = SumNumber(100);
  12. Console.WriteLine("1+2+3+4+...+100="+result);
  13. Console.ReadLine();
  14. }
  15. private static int SumNumber(int v)
  16. {
  17. if(v ==1)
  18. {
  19. return 1;
  20. }
  21. else
  22. {
  23. return v + SumNumber(v-1);
  24. }
  25. }
  26. }
  27. }

2.排序算法

2.1.冒泡排序算法

  1. using System;
  2. namespace C_Sharp_Example
  3. {
  4. public class Program
  5. {
  6. /// <summary>
  7. /// 双重循环方式实现冒泡排序
  8. /// </summary>
  9. public static void Main()
  10. {
  11. int[] arr = { 1,6,4,2,3,9,8,0,7};
  12. int arrLength = arr.Length;
  13. for(int i =0; i< arr.Length -1; i++)
  14. {
  15. for(int j=0;j<arr.Length-i-1;j++)
  16. {
  17. if(arr[j]>arr[j+1])
  18. {
  19. int tmp = arr[j];
  20. arr[j] = arr[j + 1];
  21. arr[j + 1] = tmp;
  22. }
  23. }
  24. }
  25. Console.WriteLine("排序后的顺序"+string.Join(",",arr));
  26. Console.ReadLine();
  27. }
  28. }
  29. }

2.2. 使用递归算法实现冒牌排序

  1. using System;
  2. namespace C_Sharp_Example
  3. {
  4. public class Program
  5. {
  6. /// <summary>
  7. /// 递归方式实现冒泡排序
  8. /// </summary>
  9. public static void RecursiveBubbleSort(int[] arr, int arrLength)
  10. {
  11. if (arrLength == 1)
  12. return;
  13. for(int i=0; i<arrLength-1;i++)
  14. {
  15. if(arr[i] > arr[i+1])
  16. {
  17. int tmp = arr[i];
  18. arr[i] = arr[i + 1];
  19. arr[i + 1] = tmp;
  20. }
  21. }
  22. RecursiveBubbleSort(arr,arrLength-1);
  23. }
  24. private static void RecursiveBubbleSortRun()
  25. {
  26. int[] arr = { 1,6,4,2,3,9,8,0,7};
  27. int arrLength = arr.Length;
  28. RecursiveBubbleSort(arr,arrLength);
  29. Console.WriteLine("排序后的结果"+string.Join(",",arr));
  30. Console.ReadLine();
  31. }
  32. }
  33. }

更新中 ~~~ 创作不易,喜欢点赞收藏加关注 ❤

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号