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


    冒泡排序

    假设排序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};

  • 相关阅读:
    JfreeChart折线图 CSDN-李鹏飞
    [2012山东省第三届ACM大学生程序设计竞赛]——Mine Number
    两个对象值同样(x.equals(y) == true),但却可有不同的hash code,这句话对不正确?
    EBS TimeZone问题
    json数据转化成实体 存到数据库.
    写给大一大二大三还在迷惘中的学生
    Xamarin中Unsupported major.minor version 52.0问题解决
    解决Xamarin Android SDK Manager闪退问题
    Xamarin Forms启动自带模拟器缓慢
    Xamarin Android SDK无法更新的解决办法
  • 原文地址:https://www.cnblogs.com/guohuiru/p/2781527.html
Copyright © 2020-2023  润新知