数组的应用

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

    安装 XML Parser 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. PHP XML Parser 函数 PHP:指示支持该函数的最早的 PHP 版本. 函数 描述 PHP utf8 ...

  2. php在.php文件中设置php.ini,仅对当前文件有效

    ini_set (PHP 4, PHP 5, PHP 7) ini_set — 为一个配置选项设置值 折叠返回值 成功时返回旧的值,失败时返回 FALSE. 折叠范例 <?php echo in ...

  3. java学习——正则表达式

    本文内容来源于  历经5年锤练--史上最适合初学者入门的Java基础视频 例:要求QQ号长度为5~15位,不能以0开头 String qq="123456"; String reg ...

  4. 异步socket大并发实现

    using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.So ...

  5. C++ Const成员函数

    一些成员函数改变对象,一些成员函数不改变对象. 例如:  int Point::GetY() { return yVal; }  这个函数被调用时,不改变Point对象,而下面的函数改变Point对象 ...

  6. JS浏览器关闭时清空cookie

    function addCookie(objName,objValue,objHours){    var str = objName + "=" + escape(objValu ...

  7. php生成table表格

    function getTable($arrTh, $arrTr){ $s = '<table class="tbData">'; $s .= '<tr>' ...

  8. iOS开发——C篇&预处理

    其实在C语言的远行过程中,有这样一个流程, 编译:C----〉可执行文件(可以运行的) 1:.C------.i 预处理(之前和之后还是C语法)2: .i-------.s 编译(之前是C语法,之后是 ...

  9. 搭建本地Nuget服务器并使用NuGet Package Explorer工具打包nuget包

    1.什么是Nuget: 百度百科描述: Nuget是 ASP .NET Gallery 的一员.NuGet 是免费.开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库. ...

  10. 在Activity的生命周期中,会被系统回调的方法

    onCreate(Bundle savedStatus):创建Activity时被回调.onStart():启动Activity时被回调.onRestart():重新启动Activity时被回调.on ...