当前位置: 首页 > news >正文

C#。4.1数组的应用

数组的应用

(一).冒泡排序。
1.冒泡排序是用双层循环解决。外层循环的是趟数,里层循环的是次数。
2.趟数=n-1;次数=n-趟数。
3.里层循环使用if比较相临的两个数的大小,进行数值交换。

 

代码

         int[] a = new int[8] { 9, 12, 7, 5, 15, 2, 1, 8 };
               //冒泡排序
          for(int i=1;i<=a.Length-1;i++) //趟数
                 {
                      for (int j = 1; j <= a.Length - i; j++)//次数
                                {
                                   if(a[j-1] > a[j])
                                      {
                                           int t = a[j - 1];
                                            a[j - 1] = a[j];
                                            a[j] = t;
                                       }
                                }
                   }

 

(二).折半查找。
前提:数组必须是有序的。
思路:用两个变量分别代表上限(top)和下限(bottom)的下标,再用一个变量代表中间(mid)的下标。
      1.求中间下标:mid = (top+bottom)/2
      2.上限下标下移:top = mid+1. 假设数组是升序排列。
      3.下限下标上移:bottom = mid-1;
      4.循环条件是:bottom>=top
static void Main(string[] args)
        {
            int[] a = new int[] { 3, 5, 7, 9, 11, 13, 14, 18 };

              Console.Write("请输入要找的数:");
               int find = Convert.ToInt32(Console.ReadLine());

               int top, bottom, mid; //上限下标,下限下标,中间下标
               top = 0;
               bottom = a.Length - 1;

              while(bottom>=top) //只要下限下标还在上限下标的下面,就循环,否则没找到就结束。
                 {
                      //算中间下标
                     mid = (top + bottom) / 2;
                      //取中间的值
                    int n = a[mid];
                    if(n < find)
                       {
                             top = mid + 1; //调整上限的下标
                       }
                    else if(n>find)
                      {
                        bottom = mid - 1;// 调整下限的下标。
                       }
                    else
                       {
                             Console.WriteLine("找到了,在第" + mid + "个元素上");
                            break;
                      }
                 }
     }

 

二维数组:
表格的模型。
定义:
     数据类型[,] 数组名 = new 数组类型[维度长度,维度长度];
     int[,] a = new int[3,4];
     int[,] a = new int[3, 4] { { 1, 2, 3, 4 },{ 5, 6, 7, 8 }, { 9, 0, 9, 8 } };
赋值:
          数组名[下标,下标] = 值;
           a[0,0] = 5;
           a[2,3] = 10;
取值:
        数组名[下标,下标];
应用:

做个图形

    int[,] map = new int[10, 10]
     {
        {1,1,1,1,1,1,1,1,1,1},
        {1,0,0,0,0,1,0,0,0,1},
        {1,8,0,0,0,1,0,0,0,1},
        {1,0,0,0,0,1,1,1,0,1},
        {1,0,0,0,0,0,0,1,0,1},
        {1,0,0,0,1,0,0,1,0,1},
        {1,0,0,0,1,0,0,0,0,1},
        {1,1,1,1,1,0,0,0,0,1},
        {1,0,0,0,0,0,0,0,9,1},
        {1,1,1,1,1,1,1,1,1,1}
     };

     for (int i = 0; i < 10; i++)

        {
          for (int j = 0; j < 10; j++)
            {
               if (map[i, j] == 1)
                  {
                     Console.Write("■");
                   }
               else if (map[i, j] == 0)
                  {
                    Console.Write(" ");
                  }
              else if (map[i, j] == 2)
                {
                   Console.Write("□");
                }
              else if (map[i, j] == 9)
               {
                  Console.Write("★");
               }
             else if (map[i, j] == 8)
              {
                 Console.Write("♀");
              }
          }
        Console.WriteLine();

 

转载于:https://www.cnblogs.com/999c/p/4190098.html

相关文章:

  • Luogu P1552 [APIO2012]派遣 主席树
  • 深入浅出设计模式——装饰模式(Decorator Pattern)
  • Centos 7.5安装Grafana5.3结合Zabbix3.4实现可视化图形
  • 部分金融常识
  • Python 调用 C 语言 so
  • vue.js 是如何做到数据响应的
  • 计算机科学论文写作5-写硕士论文
  • react native中使用echarts
  • JQuery中$.ajax()方法参数详解
  • 理解 JavaScript Mutation 突变和 PureFunction 纯函数
  • table tr,td,div ... focus
  • 数控切割机造船行业应用
  • 小明的调查作业
  • virtualbox 不能为虚拟电脑打开一个新任务/VT-x features locked or unavailable in MSR.
  • Linux Cluster
  • ----------
  • 3.7、@ResponseBody 和 @RestController
  • bearychat的java client
  • CSS实用技巧
  • extract-text-webpack-plugin用法
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Mybatis初体验
  • mysql常用命令汇总
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Python 基础起步 (十) 什么叫函数?
  • SpiderData 2019年2月16日 DApp数据排行榜
  • 不上全站https的网站你们就等着被恶心死吧
  • 产品三维模型在线预览
  • 分享一份非常强势的Android面试题
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 三分钟教你同步 Visual Studio Code 设置
  • 使用common-codec进行md5加密
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 选择阿里云数据库HBase版十大理由
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​低代码平台的核心价值与优势
  • #NOIP 2014#Day.2 T3 解方程
  • (70min)字节暑假实习二面(已挂)
  • (arch)linux 转换文件编码格式
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (二)windows配置JDK环境
  • (二十三)Flask之高频面试点
  • (二十四)Flask之flask-session组件
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (转) Android中ViewStub组件使用
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .Net FrameWork总结
  • .NET MVC 验证码
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题