A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 伟大的骗子 中级黑马   /  2015-6-20 09:47  /  229 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

骗子关于数组的一页笔记,有点乱哈哈

[size=10.5000pt]一、关于数组的定义和一些列操作
类似
int[] arr = new int[2];
或者
int arr[] = new int [2];
或者
int[] arr = new int[]{1,2,3,4};
或者
int[] arr= {1,2,3,4};
几种方式都是可以用来定义一个数组,然后数组名前面的修饰符int也可以切换成其它诸如byte这些。
1.数组的遍历
forint x=0;x<数组长度;x++
{
数组[x]
}
数组有一个length属性可以用来获取数组长度
2.取最值
这里用取最大值举例子
int a=数组[0]
forint x=1;x<数组长度;x++
{
if(a>数组[x])
a = 数组[x]
}
最后得出的a的值,一定是数组中最大值
此处注意,forx的初始值是1而不是0.因为a的初始值为数组[0]
2.排序,此处列举两种,冒泡法和比较法
这两种方法其实都差不多,
冒泡法
for(int x=0;x<数组长度-1;x++)
{
for(int y=0;y<数组长度-x-1;y++)
{
if(数组[y]>数组[y+1]);
两值互换;
}
}
比较法
for(int x=0;x<数组长度-1;x++)
{
for(int y=x;y<数组长度;y++)
{
if(数组[x]>数组[y]);
两值互换;
}
}
可以看出这两种方法在语言上看上去是差不多的,然后执行过程中的差别冒泡挨个将最值排到顶端,而比较法是从头开始每个元素都与之后的所有元素做比较,所以冒泡法效率更高一点。
3.数组元素的查找
有脚标的情况下可以直接通过,数组[x]的方法获取元素
而有元素的情况下只需要
for(int x=0;x<数组长度;x++)
{
if(数组[x]==元素)
return x;
}
就可以得到该元素脚标的值,在编写此类程序的时候,一般有一个惯例,就是如果所提供的元素在函数中不存在,则我们给出返回值-1,因为负数在数组脚标中是不可能出现的,所以用-1来表示查无此元素。
此外若可以确定一个数组中数据是顺序排序的,则此时我们可以使用中间值法来进行更有效率的查找
int x=数组长度-1;
int y=0;
int mu=x+y/2
for(;mu<x&mu>y;)
{
if(元素>数组[mu])
{
y=mu+1;
mu=(x+y)/2;
}
else if (元素<数组[mu])
{
x=mu-1;
mu=(x+y)/2;
}
else
return mu;
}
元素在数组中不存在;


                                                                                                       


1 个回复

正序浏览
这笔记做的不错啊,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马