数组排序
冒泡排序
案例:定义一个int类型数组并随机赋值,给数组中的数排序
如{23,35,7,789,12} -----{7,12,23,35,789}
冒泡排序分析
原数组 12,23,45,2,56,13
第一次冒泡排序结果:12,23,2,45,13,56
第二次冒泡排序结果:12,2,23,13,45,56
第三次冒泡排序结果:2,12,13,23,45,56
/** * 冒泡排序 * @author Administrator * */
public class TestArray03 {
public static void main(String[] args) {
int[] array = {23,3,45,14,56,77,42};
for(int i = 0; i< array.length-1;i++){
for(int j = 0;j < array.length-i-1;j++){
if(array[j] > array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
for(int a : array){
System.out.print(a+" ");
}
}
选择排序
选择排序:从数组空间中选择第一个空间然后和其他空间中的数据进行比较,如果要求升序排列,那么选择的这个空间中的数据和其他空间中的数据比较完之后将最小的数据和当前的第一个空间中的数据进行互换位置。然后再选择第二个空间中的数据和除第一个空间中的数据进行比较,同样找出最小的数据,将两个空间中的数据的位置互换。后面的数据以此类推,一直到将所有的数据变成从小变大的数据为止。如果将数据进行降序排列,方法相反。
选择排序分析
原数组 12,23,45,2,56,13
第一次:2,23,45,12,56,13
第二次:2,12,45,13,56,23
第三次:2,12,13,23,56,45
第三次:2,12,13,23,45,56
/** * 选择排序 * @author Administrator * */
public class TestArray02 {
public static void main(String[] args) {
int[] array = {23,3,45,14,56,77,42};
for(int i = 0; i< array.length;i++){
for(int j = i+1;j < array.length;j++){
if(array[i] > array[j]){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
for(int a : array){
System.out.print(a+" ");
}
}
}
二维数组(了解)
数组的定义
数据类型[][] 数字名 = new 数据类型[row][column];
数据类型[][] 数字名 = new 数据类型[][]{{元素1,元素2…..},{ 元素1,元素2…..},{ 元素1,元素2…..}…….};
数据类型[][] 数字名 = {{元素1,元素2…..},{ 元素1,元素2…..},{ 元素1,元素2…..}…….};
/** *二维数组 * @author Administrator * */
public class TestArray05 {
public static void main(String[] args) {
int[][] array = new int[6][3];
int[][] array1 = {{23,34},{3,4,56},{12,23,67}};
int[][] array2 = new int[][]{{23,34},{3,4,56},{12,23,67}};
array[0][0] = 1;
array[0][1] = 1;
array[1][1] = 1;
//数组遍历
for(int i = 0;i<array.length;i++){
for(int j = 0; j<array[i].length;j++){
System.out.println(array1[i][j]);
}
}
}
}