zoukankan      html  css  js  c++  java
  • 9.19数组以及经典案例

    数组:相同类型数据的集合(此解释适于强类型语言)

    强类型语言中:1.数组里面只能存放相同数据类型的数据。

          2.定义数组的时候需要制定一个长度(可以存放的元素数量)。

          3.内存空间连续。

    集合中:1.可以存放任意类型的数据。

       2.定义时不需要制定长度。

       3.内存空间不连续。

    JS中:1.可以存放任意类型数据。

       2.定义时不需要制定长度。

    定义数组:var attr = array();      索引:开始为0

         alert(attr[]);

    var attr=[1,3.14,"aa"]    使用方括号来定义

    alert(attr.length);    length:代表数组长度    push:往数组里面追加元素

    数组遍历:经常使用for循环。   控制循环次数

    for(var i =0;i<attr.length;i++)

    alert(attr[i]);

    方式遍历:foreach()(通常用与强类型语言)

      forrach(int a in list)

      {

        a;

      }

    弱类型语言用for:  当变量a取不到值时,会自动跳出循环。var a取的是索引

      for(var a in attr)

      {

        alert(attr[a]);

      }

    示例:

    1. 10个分数,求总分、最高分、最低分

        //总分

    var attr=[89,80,76,49,90,25,85,76,59,40]

    var sum=0;

    for(var i=0;i<attr.length;i++)

    {

      sum += attr[i];

    }

    alert(sum); 

        //最高分

    var zg =0;

    for(var i=o;i<attr.length;i++)

    {

      if(attr[i]>zg)

      {

        zg=attr[i];

      }

    }

    alert(zg);

        //最低:  在有最高值的情况下取最高值

    var zd = zg;
    for(var i=0;i<attr.length;i++)
    {
      if(attr[i]<zd)
      {
        zd = attr[i];
      }
    }
    alert(zd);

    2.添加去重:

    var attr =[2,5,10,16,27];

    var sj=27;

    var cf=true;

    for(var i=0;i<attr.length;i++)

    {

      if(sj == attr[i])

      {

        cf = false;

        break;

      }

    }

    if(cf)

    {

      attr.push(sj);

      alert(attr.length);

    }

    else

    {

      alert("有重复值");

    }

    3.对数组元素排序(♥  冒泡排序):

    var attr = [1,8,26,4,15,3,7,42,9];

    冒泡排序样式:

    8 6 4 5 3 7 2 9 1   8
    8 6 5 4 7 3 9 2 1     7
    8 6 5 7 4 9 3 2 1   6
    8 6 7 5 9 4 3 2 1   5
    8 7 6 9 5 4 3 2 1   4
    8 7 9 6 5 4 3 2 1   3
    8 9 7 6 5 4 3 2 1   2
    9 8 7 6 5 4 3 2 1   1

    两个相邻的元素进行比较,满足条件元素互换
    进行比较的轮数是数组的长度减一

    定义一个交换使用的中间变量
    var zj = 0;

    for(var i=0;i<attr.length-1;i++)

    {

      for(var j=0;j<attr.length-1-i;j++)

      {

        if(attr[j]<attr[j+1])

        {

          zj=attr[j];

          attr[j]=attr[j+1];

          attr[j+1]=zj;

        }

      }

    }

    alert(attr[0]);

    这一种便捷排序代码在JS中不准确,不要用:

    var attr = [1,8,26,4,15,3,7,42,9];

    attr.sort();

    alert(attr[3]);

    在数组里面查找数据:(循环遍历方式)(二分法)

    循环遍历方式:

    var sy = -1;
    for(var i=0;i<attr.length;i++)
    {
      if(attr[i]==v)
      {
        sy = i;
      }
    }

    if(sy == -1)
    {
      alert("没找到数据");
    }
    else
    {
      alert("该数据在数组里面的索引为:"+sy);
    }

    ♥  二分法:

    var minsy = 0;          (最小索引)
    var maxsy = attr.length-1;
    var midsy ;

    while(true)                       (因为循环次数不同,so用while)

    {

      midsy = parseInt((minsy+maxsy)/2);    (若类型语言中避免小数要用parseint转换)

      if(attr[midsy] == v)          (比较中间值和用户的值判断中间索引的值是否等于用户要查找的值)

      {

        break;               (如果等于,就退出循环,找到了值)

      }

      if(midsy == minsy)           (判断是否只剩下两个数据)

      {

        if(attr[midsy+1]==v)        (判断两个数据中的另外一个是否等于用户查找的值)

        {   

          midsy = midsy+1;       (找到了值,退出循环)
          break;

        }

        else

        {

          midsy = -1;           (没找到值,退出循环)

          break;

        }

      }

      if(attr[midsy]>v)            (用来改范围)

      {
        maxsy = midsy;
      }
      else
      {
        minsy = midsy;
      }

    }

    alert(midsy);

  • 相关阅读:
    HDU4608+模拟
    七、cocos2dx之粒子系统
    组织机构代码校验码 验证程序
    公民身份号码 校验码 检证程序
    百度地图之短串分享
    HDU 1421 DP
    动物:黄鼬、黄鼠狼
    动物-昆虫-蜂:马蜂
    动物-昆虫-蜂:青米蜂
    动物-昆虫-蜂:土蜂
  • 原文地址:https://www.cnblogs.com/u1020641/p/5885815.html
Copyright © 2011-2022 走看看