記住數組順序是從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 }