为什么要有数组?
在生活当中,比如一箱牛奶有12包,你是整箱买还是单独买12包? -般情况下都是整箱购买,便于携带。可以将数组理解为一一个箱子,在数组里面可以存储同种数据类型的多个值,这样便于数据的使用。比如在进行方法的参数传递时,需要传递10个int类型的参数,如果没有数组的话,需要写10个参数非常麻烦,使用数组后,传递一一个数组即可。
数组的分类
■数组是存储同一种数据类型多个元素的集合。也可以看成是-个容器。
■数组里面既可以存储基本数据类型,也可以存储引用数据类型,但是只能存储同一种数据类型。.
■数组是一种简单的数据结构,线性的结构
■数组一旦创建其长度是不可变的
■数组是引用数据类型
数组的分类
■一维数组//我们大部分人使用的是一维数组
■二维数组
■三维数组
■多维数组
第一行:1,2,3,4,5//一维数组
第二行:6,7,8,9,10//二维数组
//使用静态初始化的方式创建一维数组
int[ ] i={1024,2048,256};
String[ ] str ={"java","python","c++","php"};
选择排序原理
将要排序的一组数字进行遍历。
第一次遍历,将第一个位置上的数字与后面的数字进行比较,如果后面的数字比第一个位置 上的元素小,则将两个数字的位置进行交换。
第二次遍历,将第二个位置上的数字与后面的数字进行比较,如果后面的数字比第二个位置上的元素小,则将两个数字的位置进行交换。
依次进行遍历、位置交换,直到这组数字排序完成。
比如要排序的数字是4.2,7,3,6
第-次遍历,将最小的2筛选出来: 2,4,7,3,6剩下数字: 4,7,3,6
第二次遍历,将最小的3筛选出来: 3,7,4,6剩下数字: 7,4,6
第三次遍历,将最小的4筛选出来: 4,7,6剩下数字: 7,6
第四次遍历,将最小的6筛选出来: 6,7
排序完成。
二分法查找原理
用二分法查找需要下面两个条件
1.没有重复元素。
2.已经排好顺序
假设给定一组排好序且没有重复元素的数字, 要从这些数字中快速找到x所在的位置,可以从这组数字的中间位置开始找,如果当前值与x相等,则查找成功,如果小于x则从后半段的中间位置继续找,如果大于x则从前半段的中间位置继公寻找,直到找到x所在的位置。
例如一个数组里面的元素有: 1,5,8,15,18,23,30
快速找到23对应的下标值
第一次:取得数组的中间位置的值15,15小于23,所以继续从后半段开始找,后半段的元素是18,23,30第二次:取得数组后半段元素中间位置的值23,23等于23,即找到23对应的下标值5