初始化数组的四种方式

目录

1. 问题描述

2. 四种方式

1) 顺序赋值初始化

2) 循环输入初始化

3) 循环随机初始化

4) 以0初始化数组

3. 运行实例


1. 问题描述

在初学Raptor时,经常会遇到如下问题:对10个同学的成绩进行排序、对一组数进行排序、斐波那契数列等等。这些涉及到一系列数据的问题往往可以利用数组来比较方便的解决。通过利用数组,缓解了定义多个变量的困扰,下面以一维数组为例,简要介绍数组初始化数据的四种方式,并简要介绍其优缺点。

2. 四种方式

1) 顺序赋值初始化

数组名为a,其中有8个元素,分别是0-7,如下图所示:

优点:

对于某些输入不会变动的数据,可以这样输入,比如如果数组a代表的是八进制的8个基数,那么就是永远不会变动的,所以可以这样定义。上面的例子不是很好,如果是16进制可能会更有说服力,因为16进制的基数不光有数组,还有字母。

缺点:

丧失了数组的优势,一次赋值后,后面如果想要使用就要重新赋值,及其不方便,所以这个方法如果没有必要使用就不要使用。

2) 循环输入初始化

数组名为b,通过输入数组的长度变量n,再通过循环输入创建数组,如下图所示:

优点:

充分利用了数组能组织数据的这一特点,对于数组长度和输入数据都不确定的问题,这个方法非常有用。

缺点:

① 某些问题对于输入数据没什么要求的情形,还要自动手动输入,有些不太方便;

② 如果让初始化的数组结果为全部为0,通过更改输入框为赋值框可以实现,但是不是最简单的方法,最简单的方法见方式4。

3) 循环随机初始化

数组名为c,数组长度n可以自己输入,数组中的元素为[0, 99]的随机整数(关于生成任意范围的随机数,可以参考我之前的博客:Raptor中生成任意范围的随机数),如下图所示:

优点:

① 对于有些问题,题目要求数组中的元素为一定范围的随机数,所以必须用这种方式;

② 对于输入没什么要求的问题,可以用随机初始化的方法,比如金块问题、数据排序问题;

③ 节省了手工输入数据的时间,对于验证某些算法的可行性时,经常采用随机初始化数组的方式,比如排序算法。

缺点:

基本上没什么缺点,这种方式可应对一大类对数组数据没有要求的问题

4) 以0初始化数组

数组名为d,数组长度n通过输入指定,数组初始值全部为0,如下图所示:

优点:

当数组初始值要求全部为0时,此方法非常便捷!

缺点:

不能拓展到数组初始值全部为非0值的情形。

3. 运行实例

下面是主图和用于展示数据的子程序:

结果:

Raptor-初始化数组的四种方式相关推荐

  1. c#初始化数组的四种方式

    //作者:鸟哥 qq1833183060 //初始化数组的四种方式 //参考:https://www.cnblogs.com/afei-24/p/6738128.html //csharp讨论群:11 ...

  2. java 如何初始化数组_java中初始化数组的三种方式分别是什么

    三种初始化方式: 1.静态初始化:创建+赋值 2.动态初始化:先创建再赋值 3.默认初始化:创建之后若不赋值则会被赋对应数据类型的默认值 (视频教程推荐:java视频) 我们来看一下具体代码:publ ...

  3. JS中循环遍历数组的四种方式总结

    1.for 循环: for (let index=0; index < someArray.length; index++) {const elem = someArray[index];// ...

  4. C语言二维数组的四种遍历方式

    二维数组的四种遍历方式: a[i][j]   *(a[i]+j)   *(*(a+i)+j)    *(&a[0][0]+i*n+j)  1.a[i][j] :  这种方法是最基本的方式. 2 ...

  5. php 数组存入mysql_PHP将数组存入数据库中的四种方式

    1.implode()和explode()方式 2.print_r()和自定义函数方式 3.serialize()和unserialize()方式 4.json_encode()和json_decod ...

  6. PHP将数组存入数据库中的四种方式

    最近突然遇到了一个问题,如何用PHP将数组存入到数据库中,经过自己的多方查找和研究,总结了以下四种方法: 1.implode()和explode()方式 2.print_r()和自定义函数方式 3.s ...

  7. 数组对象去重的四种方式(强推最后一种!!!)

    哈喽哈喽,我又来了. 今天分享的是数组对象去重的方式,先看看数组对象的形式: let arrObj = [{ name: "小红", id: 1 },{ name: "小 ...

  8. java数组怎么全部初始化_Java数组初始化,这三种方式有什么区别?

    首先因为数组初始化要使用的时候必须确定数组的长度,也就是说数组的长度是不可变的. 在JAVA中创建数组有两种方式 : (1)静态创建 如 Object[] arr1 = {"a", ...

  9. Java中数组转List的四种方式

    第一种方式(未必最佳):使用ArrayList.asList(strArray) 使用Arrays工具类Arrays.asList(strArray)方式,转换完成后,只能对List数组进行查改,不能 ...

最新文章

  1. 10.VMware View 4.6安装与部署-view clint和view for ipad连接测试
  2. unix 查询进程并中止
  3. python 只取年月日 字符串_Python的数据类型
  4. 笔记-项目沟通管理-沟通基本原则
  5. .Net Compact Framework 小技巧(1)
  6. Android Paint、Path详解
  7. 分布式CAP理论:为什么CAP理论中的三个指标不能同时满足呢?
  8. LeetCode 319. 灯泡开关(找规律)
  9. 使用sqlldr导入文本数据到oracle
  10. mysql的service name_【Oracle】service_name和service_names的关系
  11. web前后台数据交互的四种方式
  12. 2. PHP 自动转义函数
  13. Android USB电源管理
  14. 用户画像构建方法调研和初步解决方案
  15. [2018-03-06] 基于Django的轻量级CMS Mezzanine搭建笔记
  16. OGG REPA进程 Error ORA-01031报错处理
  17. 软件开发模型/原型法/瀑布模型/螺旋模型
  18. 大学STEM教育的技能水平和收获
  19. android gtd_GTD重置
  20. c#右键点击选中DataGridView中整行

热门文章

  1. 盲点(1)-网络中存在哪些盲点?
  2. 亏损?盈利?禾赛科技Q1财报背后的激光雷达赛道「现实」
  3. 北京市科通电子继电器总厂有限公司怎么样
  4. 碎片化学习与学习碎片化
  5. 2021年材料员-岗位技能(材料员)考试试卷及材料员-岗位技能(材料员)模拟考试软件
  6. 为什么要进行外贸网站的建站?
  7. 雷军做互联网需7字诀
  8. Globeimposter-Alpha865qqz勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  9. 岁月的剪影【七月风风火火】
  10. 计算机维护工具盘,HB520WZ计算机维护工具盘(FBA文件,2013.10.18)