记住数组顺序是从0开始的!!!
记住数组顺序是从0开始的!!!
记住数组顺序是从0开始的!!!
重要的事情说三遍!
二维数组的静态位
一,Arrays.sort(lsz),//排序操作
针对于整型数据。如果是char型数据或者其他,则按照unicode的编码顺序排序
二,Arrays.copyOf(lsz , 2),//复制操作
可以复制全部或者一部分的长度,上式中就是取前两位数组。
Arrays.copyOfRange(lsz, from, to)//复制操作,注意力两点,首先这个段位的长度可以大于数组的长度,第二,复制的时候不包含最后一个下标所表示的数字,例如,Arrays.copyOfRange(lsz, 0, 2),复制的是0位和1位,不包含2位。
三,Arrays.binarySearch(lsz, 2),//查询操作
式中的2指的是数组中的数据而非下标,当所查询的时候数字被包含于这个数组里面的时候,返回值为这个数字所在的位置。若不在这个数组里面。则返回负数。查询操作可以直接写在输出的()里面。
四,Arrarys.fill(lsz, 2)//填充操作,将一个数组里面的数字全部填充为"2"
Arrarys.fill(lsz, from, to, 2)//部分填充操作,与部分复制的一样,不包含最后一个位置
冒泡排序算法
原理图:
23, 12, 56, 97, 19, 30, 7, 21--------------原始数据
12, 23, 56, 19, 30, 7, 21, 97
12, 23, 19, 30, 7, 21, 56, 97
12, 19, 23, 7, 21, 30, 56, 97
12, 19, 7, 21, 23, 30, 56, 97
12, 7, 19, 21, 23, 30, 56, 97
7, 12, 19, 21, 23, 30, 56, 97
这个是上课的时候讲的例子,可以看出数组的长度为8,实际排序只排序了6次,外层循环int j = 1; j < sz.length; j++,这里是循环了7次(从1到7),但是因为简化程序,控制内层循环,故这里取j = 1,让程序进行7次循环。内部循环当第一次排序完成之后,最后已经排好顺序的数字不需要再进行对比排序,所以每次排序次数是可以相应减少的,第一次7次,第二次6次,第三次5次,以此类推,第7次是一次且仅有一次的空循环。
1 int[] sz = {23, 12, 56, 97, 19, 30, 7, 21}; 2 3 for(int i : sz) 4 { 5 System.out.print(i + " "); 6 } 7 System.out.println(); 8 for(int j = 1; j < sz.length; j++) 9 { 10 for(int i = 0; i < sz.length - j; i++) 11 { 12 if (sz[i] > sz[i + 1]) //改变这里大于小于号的方向,可以变成从大到小排列 13 { 14 int t; 15 t = sz[i + 1]; 16 sz[i + 1] = sz[i]; 17 sz[i] = t; //是否可以用重新赋值的方法实现排序 18 } 19 } 20 } 21 for(int i : sz) 22 { 23 System.out.print(i + " "); 24 }