数组的应用

(一).冒泡排序。
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();

C#。4.1数组的应用的更多相关文章

  1. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  2. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  3. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  4. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  5. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  6. JavaScript常见的五种数组去重的方式

    ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...

  7. js:给定两个数组,如何判断他们的相对应下标的元素类型是一样的

    题目: 给Array对象原型上添加一个sameStructureAs方法,该方法接收一个任意类型的参数,要求返回当前数组与传入参数数组(假定是)相对应下标的元素类型是否一致. 假设已经写好了Array ...

  8. javascript数组查重方法总结

    文章参考地址:http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 题目 对下列数组去重: var arr = ['aa', ...

  9. 掌握javascript中的最基础数据结构-----数组

    这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...

  10. 小兔JS教程(四)-- 彻底攻略JS数组

    在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...

随机推荐

  1. Linux "top" 命令解析

    TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况.   TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户 ...

  2. validate()的配置项

    1.submitHandler //通过验证成功后运行的函数 代码: $("#mainForm").validate({ ...... rules:{ username:{//此处 ...

  3. Input File 表单上传按钮美化

    HTML <div class="input-file-button"> 上传图片<input type="file" class=" ...

  4. xml配置与使用

    php100:89:xml常识知识补充 xml常识知识补充XML(即可扩展标记语言,它与HTML一样,都是标准通用标记语言.Xml是Internet环境中跨平台的,依赖于内容的技术.扩展标记语言XML ...

  5. 基于.NET MVC的高性能IOC插件化架构(一)

    最近闲下来,整理了下最近写的代码,先写写架构,后面再分享几个我自己写的插件 最近经过反复对比,IOC框架选择了Autofac,原因很简单,性能出众,这篇博文是我的各大IOC框架的性能测试:http:/ ...

  6. iOS UITableView的使用大全-备用

    首先.对UITableView进行讲解,下面有对它进行实际的应用 UITableView 显示大型内容的列表 单行,多列 垂直滚动,没有水平滚动 大量的数据集 性能强大,而且普遍存在于iPhone的应 ...

  7. Linux下使用QQ的几种方式

    Linux下没有官方的QQ聊天应用,对于经常使用QQ与朋友同事沟通交流的小伙伴们来说肯定很不方便,在Linux下可以使用以下几种方法使用QQ:   1.wine qq for linux Ubuntu ...

  8. 一个简单LINUX程序的逆向

    开始之前的准备: 反汇编:IDA 十六进制编辑器: Hexworkshop LINUX环境: KALI LINUX 调试: EDB (KALI自带的) 一个简单的动态追码, 大牛们就略过吧…… 用16 ...

  9. angularJs项目实战!04:angularjs的性能问题

    上一篇文章中我花了很多口舌去介绍angularjs是一个中型框架,面对大型应用时少不了第三方类库的配合.而我的核心议题是:如何以angularjs的思路使用其他类库,这里jquery是最好的例子了,谁 ...

  10. Android自定义View 构造方法 遇到的一些问题

    Android开发中,经常会自定义View,那么就会使用构造方法,比如自定义MyView,继承View,会要求实现构造方法: public MyView(Context context) { supe ...