Unity系统班之第四课

2021-03-26 19:45发布

一、冒泡排序

2  6  4   1   5  9
1.比较的趟数等于数组的长度减1
第一趟比5次
第二趟比4次
第三趟比3次
第四趟比2次
第五趟比1次

int[] array = { 2, 6, 4, 1, 5, 9 };
比较趟数
for (int i = 0; i < array.Length-1; i++)
{
内存循环控制每一趟比较的次数
数组长度6-i-1
 i=0,j<5
i=1,j<4;
i=2,j<3
    for (int j = 0; j < array.Length-i-1; j++)
    {
        if (array[j]>array[j+1])
        {
            int temp = array[j];
            array[j] = array[j + 1];
            array[j + 1] = temp;
        }
    }
}
foreach (var item in array)
{
    Console.Write(item+"   ");
}

二、选择排序

int[] array = { 2, 6, 4, 1, 5, 9 };
for (int i = 0; i < array.Length; i++)
{
    for (int j = i+1; j < array.Length; j++)
    {
        if (array[i]>array[j])
        {
            int temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }
}

三、二分查找

int[] a = { 12, 16, 17, 23, 29, 35, 39, 45, 50, 98 };
//要查找的目标值
int target = int.Parse(Console.ReadLine());
//定义一个最小值
int min = 0;
//定义一个最大值
int max = a.Length - 1;
while (max>=min)
{
    //需要继续查找
    int mid = (min + max) / 2;
    if (a[mid]==target)
    {
        //在数组中找到了目标值
        Console.WriteLine("目标位置="+mid);
        break;
    }
    else if (a[mid]>target)
    {
        //需要在左边找,修改max
        max = mid - 1;
    }
    else
    {
        //需要在右边找,修改min
        min = mid + 1;
    }
}
if (min>max)
{
    Console.WriteLine("没有找到!");
}


四、二维数组

二维数组的声明
数据类型[,]  数组名=new 数据类型[常量1,常量2];

初始化时需要注意的点:
.二维数组实际上就是多个一维数组组成
.第一维的值是多少{}里面就有多少个一维数组,第二维的值决定了每一个一维数组的长度
.二维数组的总长度=第一维的值*第二维的值
*/
/int[,] movies = new int[2, 3];

/第一种动态初始化
/int[,] movies = new int[2, 3] { {1,2,3 },{4,5,6 } };
/第二种动态初始化
/int[,] movies = new int[,] { {1,2,3 }, {4,5,6 }, {7,8,9 } };
/静态初始化
/int[,] movies = { {1,2,3 },{4,5,6 },{7,8,9 } };

/Console.WriteLine(movies[2,0]);
/movies[2, 0] = 11;


五、foreach语句

语法结构
foreach(迭代类型  迭代变量名 in 数组名)
{
   循环体;
}
说明:
1.迭代类型默认是var,当不知道要遍历的数组是什么类型时使用,如果知道具体类型可以将var用相应类型代替
2.in是个关键字,后面是要遍历的具体数组变量名
3.item作为迭代变量只能在foreach中使用但是不能修改item的值。

int[] ages = { 18, 19, 21, 20, 23, 25 };
foreach (var item in ages)
{
    Console.WriteLine(item);
}


心得体会:

        没啥体会!