0
点赞
收藏
分享

微信扫一扫

C#(五):数组、递归


数组、递归

  • ​​递归​​
  • ​​数组​​
  • ​​数组定义方法​​
  • ​​`x 行 y 列` 的二维数组​​
  • ​​params 传参形式​​
  • ​​二分查找​​
  • ​​数组选择排序​​
  • ​​数组冒泡排序​​

递归

  • n的阶乘

class MainClass
{
public static void Main(string[] args)
{

Console.WriteLine(FunA(3));

}

public static int FunA(int n)
{

return n == 0 ? 1 : n * FunA(n - 1);

}

}

数组

数组定义方法

int[] arr0 = new int[10];

int[] arr1 = new int[3] { 1, 2, 3 };

int[] arr2 = new int[] { 1, 2, 3, 4, 5, 6 };

int[] arr3 = { 1, 2, 3, 4, 5, 6 };

​x 行 y 列​​ 的二维数组

int[,] arr = new int[3, 4];

arr[0, 1] = 12;

foreach (int item in arr)
{
Console.WriteLine(item);
}

params 传参形式

class MainClass
{
public static void Main(string[] args)
{

int[] arr = { 1, 2, 3, 4, 5, 6 };

ForArray(arr); // 1 2 3 4 5 6

ForArray(new int[5]); // 0 0 0 0 0

ForArray(new int[] { 1, 2, 3, 4, 5, 6 }); // 1 2 3 4 5 6

ForArray(1, 2, 3, 4, 5, 6); // 1 2 3 4 5 6


}

//public static void ForArray(int[] array)
//{
// foreach (int item in array)
// {
// Console.WriteLine(item);
// }
//}

public static void ForArray(params int[] array)
{
foreach (int item in array)
{
Console.WriteLine(item);
}
}

}

二分查找

  • 利用二分查找查询升序数组中指定元素的下标

class MainClass
{

public static void Main(string[] args)
{

int[] array = { 1, 2, 4, 5, 6, 8 };
Console.WriteLine(FindIndex(array, 6));

}

/// <summary>
/// 利用二分查找查询升序数组中指定元素的下标
/// </summary>
/// <param name="array">目标数组</param>
/// <param name="num">要查找的数</param>
/// <returns>元素下标</returns>
public static int FindIndex(int[] array, int num) {

int index = -1;

int min = 0;

int max = array.Length - 1;

while (max >= min) {

int mid = (min + max) / 2;

if (array[mid] == num)
{
index = mid;
break;
}
else if (array[mid] > num)
{
max = mid - 1;
}
else {
min = mid + 1;
}

}

return index;

}

}

数组选择排序

public static int[] SortArray(int[] array) 
{

for (int i = 0; i < array.Length - 1; i++) {

for(int j = i + 1; j < array.Length; j++) {

if (array[i] > array[j])
{
int num = array[i];
array[i] = array[j];
array[j] = num;
}

}

}

return array;

}

foreach (int item in SortArray(new int[] { 1, 3, 5, 1, 5, -1, 24, 12 })) {
Console.WriteLine(item); // -1 1 1 3 5 5 12 24
}

数组冒泡排序

public static int[] SortArray(int[] array)
{
for(int i = 0; i < array.Length - 1; i++)
{
for (int j = 0; i + j < array.Length - 1; j++)
{
if (array[j] > array[j + 1]) {
int num = array[j];
array[j] = array[j + 1];
array[j + 1] = num;
}
}
}

return array;

}

foreach (int item in SortArray(new int[] { 1, 3, 5, 1, 5, -1, 24, 12 })) {
Console.WriteLine(item); // -1 1 1 3 5 5 12 24
}


举报

相关推荐

C#之方法递归

C# 数组

C#基础——数组

C#递归实例 汉诺塔

用C#实现递归调用方法

C和指针(五)数组

【C语言初阶(五)】数组

C#动态数组介绍

0 条评论