学到后面总觉得数据结构非常重要,因为Java一些相关技术不断的升级更新,我们不断的学习,但是数据结构和算法其实感觉还是老样子,用来用去都是那些算法,虽然大二时候开过数据结构和算法,但是没有学的很好,勉强应付考试,这里我将继续复习他们,也可以叫预习。。啊哈哈。。。
其实就我自己而言对数据结构的理解就是为了高效的对数据的进行处理和安排。下面步入正题:
无论是否学过数据结构,数组都是我们所熟知的,在Java基础中我们都会对数组的有一定的了解,在Java语言中有两种数据类型,一种是基本类型(8种基本类型-4种整型,二种浮点型,一种字符型和一种布尔型),另一个就是对象类型,Java中数字被当做对象使用,所以我们学医new一下:
int []b=new int[10];//这里我们可以看出数字在定义时候就已经规定数组的长度
我们也可以对数组进行初始化:int []b={0,,1,2,3,4,5,6};这用方法取代了引用声明和new创建数组。
public class Arr {
public static void main(String[] args) {
arr();
}
public static void arr(){
int []a=new int[10];
//给数组赋值,并输入数组a
for(int i=0;i<10;i++){
a[i]=i;
System.out.print(a[i]+" ");
}
//查询是否有 4 的元素
System.out.println(" ");
for(int i=0;i<10;i++){
if(a[i]!=4){
if(i==a.length-1){
System.out.println("不存在4");
}
}
if(a[i]==4){
System.out.println("存在4");
}
}
}
}
二分法检索(binary search)又称折半检索,二分法检索的基本思想是设字典中的元素从小到大有序地存放在数组(array)中,首先将给定值key与字典中间位置上元素的关键码(key)比较,如果相等,则检索成功;否则,若key小,则在字典前半部分中继续进行二分法检索;若key大,则在字典后半部分中继续进行二分法检索。这样,经过一次比较就缩小一半的检索区间,如此进行下去,直到检索成功或检索失败。偶数个取中间2个其中任何一个作为中间元素二分法检索是一种效率较高的检索方法,要求字典在顺序变种按关键码排序。
二分法查找的运行时间:O(logN)