二维数组与冒泡排序

记住数组顺序是从0开始的!!!算法

记住数组顺序是从0开始的!!!数组

记住数组顺序是从0开始的!!!编码

重要的事情说三遍!spa

二维数组的静态位code

一,Arrays.sort(lsz),//排序操做
针对于整型数据。若是是char型数据或者其余,则按照unicode的编码顺序排序blog

二,Arrays.copyOf(lsz , 2),//复制操做
能够复制所有或者一部分的长度,上式中就是取前两位数组。排序

Arrays.copyOfRange(lsz, from, to)//复制操做,注意力两点,首先这个段位的长度能够大于数组的长度,第二,复制的时候不包含最后一个下标所表示的数字,例如,Arrays.copyOfRange(lsz, 0, 2),复制的是0位和1位,不包含2位。unicode

三,Arrays.binarySearch(lsz, 2),//查询操做
式中的2指的是数组中的数据而非下标,当所查询的时候数字被包含于这个数组里面的时候,返回值为这个数字所在的位置。若不在这个数组里面。则返回负数。查询操做能够直接写在输出的()里面。class

四,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         }
相关文章
相关标签/搜索