冒泡的算法、枚举和结构以及方法笔记

冒泡排序

假设排序n个数:则比较n-1轮(用for),

再用一个for

第一轮比较:n-1次:

step1:第一个数和第二个比,如果第一个比第二个小,第一个和第二个交换位置,

step2:第二个再和第三个比较,如果第二个比第三个小,第二个和第三个交换位置

....

第一轮比较n-1后,数组最后一个为最小值

第二轮比较:n-2次

step1:第一个数和第二个比,如果第一个比第二个小,第一个和第二个交换位置,

step2:第二个再和第三个比较,如果第二个比第三个小,第二个和第三个交换位置

....

第一轮比较n-2后,数组最后一个为最小值,倒数第二个为仅次于数组倒数第一个小的数;因为最后一个已经和其它的都比较过,所以不用再和倒数第二个比较,因此第二轮比较了n-2次;

以此类推

第三轮比较:n-3次

第四轮比较:n-4次

代码:

  //冒泡排序
            Console.WriteLine("请输入数组长度");//提示用户输入数组的长度
            int[] num = new int[int.Parse(Console.ReadLine())];//根据数组的长度初始化数组
            int i = 0;
            //让用户输入数组的成员
         while (i < num.Length)
            {
                Console.WriteLine("请输入数组成员:");
                if (int.TryParse(Console.ReadLine(), out num[i]))//判断用户输入的是否为数字
                {
                    i++;
                }
                else
                {
                    Console.WriteLine("你输入的有误");                
                }
            }
            for (int j = 0; j < num.Length - 1; j++)//控制比较的轮数
            {
                for (int k = 0; k < num.Length - 1 - j; k++)//控制每轮比较的次数
                {
                    int temp;
                    if (num[k] < num[k + 1])//两个数比较谁大,大的往前移,和小的交换位置
                    {
                        temp = num[k];
                        num[k] = num[k + 1];
                        num[k + 1] = temp;
                    }
                }
            }

            for (int k = 0; k < num.Length; k++)
            {
                Console.WriteLine(num[k]);
            }    


枚举:一般用于固定的数量,比如季节,方向,用的时候,枚举名.成员

语法:

[访问修饰符] enum 枚举名

{

成员1,

成员2

}

例子如下:

 //    定义枚举方向QQ登录状态 
        public enum QQstatus
        {
            在线,
            隐身,
            登录,
            在线,
        }
        public enum Direction
        {
            east,
            west,
            north,
            south
        }

结构:可以一次声明多个变量

语法:
[访问修饰符]  struct  结构名
{
结构成员
[访问修饰符] 数据类型名  变量名;
}

例子:声明一个person的结构体,有三个成员

 public struct peason
        {
            public string _name;
            public char _sex;
            public Direction _dir;
        }

方法:函数就是讲一堆代码进行重用的机制,一些方法就完成一个功能,用法在主函数中用类名.方法名();如果在本类中使用则可以省略类名
语法:
[访问修饰符] static 返回值类型 方法名([参数列表])
{
     方法体;
}

有static的方法为静态方法

注意:

方法名开头大写,参数名开头小写,方法参数名要有意义
局部变量  作用域只在当前的语句块中
全局变量  整个代码都可以访问
返回值  return  有返回值时  return +值;

例子如下:

  int num1 = 10, num2 = 20;
            int sum =   Add(num1, num2);//调用Add方法
            Console.WriteLine(sum);
            Console.ReadKey();

        }
        /// <summary>
        /// 计算两个数的和
        /// </summary>
        /// <param name="number1">参数1</param>
        /// <param name="number2">参数2</param>
        /// <returns></returns>

        public static int Add(int number1, int number2)
        {
            return number1 + number2;
        }

声明数组的四种方法:
int [] numbers=new int [3];

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

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

int[] numbers={1,2,3};

原文地址:https://www.cnblogs.com/guohuiru/p/2781527.html