当前位置:首页 > day05总结
Day05 上午:
1、数组的静态初始化
多种定义格式:
Int[] arr=new int[]//标准格式,可以明确数组的数据类型,和数组名,但是不知道数组的长度
Int arr[]=new int[]
Int[] arr=new int[]{2,1,3,4,5,}//通过大括号可以标示出数组中的内容,此处最好别写长度,因为容易出错,因为即初始化实体,又初始化实体中的元素。
Int[] arr={2,1,3,4,5};//可以明确数组的数据类型,和数组名,也可以知道数组中的内容。 2、arr.length:方便获取数组中的元素个数的方式。 3、操作数组的最基础的思想以及核心思想:
a) 最基础的思想:就是遍历。什么是遍历。
Eg:int[] arr = new int[3]; int[] arr = {4,8,9,2,6,9};//明确了数组的类型和长度,并明确了数组中元素的内容。
// int[] arr1 = new int[]{4,8,9}; //方便获取数组中的元素个数的方式,可以使用数组实体一个属性。length System.out.println(\ for(int x=0; x 这就是遍历的思想,获取数组中的元素,通常会用到遍历。 b)核心思想:就是操作数组中元素的角标,角标即索引,因为存数据的最终目的就是取出数据使用,就是操作角标,操作动作:1、给数组角标上的元素赋值,2、获取角标上元素的值,存储都得用角标 4、数组中常见的操作: a) 获取最值: 思路: 1、首先我们要定义一个功能完成获取数组中最大值的动作; 2、定义个函数来实现这一功能;明确结果,整数数组中的最大值,int,明确是否有未知内容参与运算,参数列表中有一个参数,数组类型int[],一定要注意这里是数组类型,不是int型; 3、如何实现功能细节呢? 1、对数组中的元素进行比较,将比较后比较大的值进行记录,并参与下一次比较,当数组中的元素都比较完成后,最大值就已经被记录下来了。 2、每次比较的较大的值不确定,定义一个变量进行记录,该变量如何初始化呢?只要初始化为数组中的人一个元素即可。 3、应该让数组中的元素自动和该变量记录的元素进行比较,所以可以使用遍历,获取数组中的每一个元素。 4、当遍历到元素比较变量中的记录的元素大,用该变量记录住更大的元素。 5、遍历结束后,变量存储就是数组中的最大值。 实现代码:eg: Public static int getMax(int arr) { /.定变量记录较大的值; Int max=arr[0];//初始化数组中的任意个元素; //对数组进行遍历比较 For(int x=1;x If(arr[x]>max) Max=arr[x]; } Return max; } 同样有另外一种方式获取最大值 Public static int getMax(int[] arr) { Int maxIndex=0;//初始化为数组中一个元素的角标 For(int x=1;x If(arr[x]>arr[maxIndex]) maxIndex=x; } Return arr[maxIndex]; } b) 排序: 1、选择排序: 首先通过数组中元素的比较方式来分析: 用数组中第一个角标的元素与数组中第二个角标的元素进行比较,发现9比6大,进行位置置换,此处应该定义一个三方变量,用来记录住置换过程的元素值, 然后再用第一个角标的元素与下一个角标元素进行比较,按照全面的原则进行置换位置,如果前者小于后者,则不置换位置,一次比较,当第一轮结束之后第一个角标出能取的该数组中最小的元素的值,然后再用第一个角标的元素开始和下一个角标的元素进行比较,同理,当第二轮结束后,第二个角标处获取了该数组中的第二小的值。所以我们发现当依次这样比较下去,就可以对数组中的元素进行排序,当比较到arr.length-1元素时,发现只剩下这一个元素,没有其他元素和它进行比较了。 思路: 1、首先定义一个功能函数对数组进行排序, 2、明确结果,没有返回值,因为它只是对数组进行排序的一个动作,明确是否有未知内容参与运算,有,数组类型int[] arr 实现代码: Public static void selectSort(int[] arr) { For(int x=0;x For(int y=x+1;y { Int temp=arr[x]; Arr[x]=arr[y]; Arr[y]=temp; } } } } 优化后的选择排序: 从上面的排序图中我们可以知道,对数组中元素进行置换位置的次数过多,也就是对堆内存的操作频繁,降低了性能,下面我们可以通过这种方式对性能优化。 思路: 在栈内存中我们定义两个变量,分别用来记录较小的元素的值和较小元素的角标, 然后对其进行初始化,至于初始化的值只要是数组中的任意元素即可,然后拿数组中的元素与它进行比较,如果发现拿去比较的元素比变量中记录的数值要小,那么就进行位置置换,并记录下较小的元素的角标,依次把数组中的元素遍历完,就可以获取数组中的最小元素的值和角标,然后我们拿初始化的值和获取的最小的元素进行位置的置换,这样以来当我们获取了数组中的元素的最小的时候,堆内存中的只用操作一次位置即可,这样的就提高性能。 实现代码: Public static void selectSort_2(int[] arr) { For(int x=0;x Int num=arr[x]; Int index=x; For(int y=x+1;y If(num>arr[y]) Num=arr[y]; Index=y; } If(index!=x) { int temp = arr[x]; arr[x] = arr[index]; arr[index] = temp; } } } 注意:复习的时候添加注释 2、冒泡排序: 首先通过排序方式来分析其步骤:
共分享92篇相关文档