Java知识点总结05-二维数组冒泡

来源:互联网 发布:剑三捏脸数据成男动漫 编辑:程序博客网 时间:2024/05/21 08:00

二维数组:

         就是一个元素为一维数组的数组、

        动态初始化方式一(指定有多少个长度相同的一维数组):

         数据类型[][] 变量名 = new 数据类型[m][n];

                           m表示这个二维数组有多少个一维数组

                           n表示每一个一维数组的元素个数

    

     动态初始化方式二(指定二维数组中有多少个一维数组,每一个一维数组的长度不固定):

               数据类型[][] 变量名 = new 数据类型[m][];

                                 注意:

                                          m这个数据必须给出,后面的数据可以不给

                                                   arr[0] = new int[2];

                                                   arr[0][0] = 1;

                                                   arr[0][1] = 2;

  

          二维数组的静态初始化:

                静态初始化:

          数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

 

                简化格式:

          数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};



                                 如果形式参数是基本类型:

                                 形式参数的改变,不影响实际参数。

                                 如果形式参数是引用类型:

                                 形式参数的该变,直接影响实际参数。


  冒泡排序:

      相邻两个元素进行比较,小的放前面,大的放后面



public class ArraySortDemo {
public static void main(String[] args) {
// 使用冒泡排序给数组int[] arr = { 24, 69, 80, 57, 13 };进行排序
// 创建一个数组
int[] arr = { 24, 69, 64, 23, 67, 45 };


// 第一次排序
/* for (int i = 0; i < arr.length - 1 - 0; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i] = temp;
}
}
// 打印数组
printArr(arr);


// 第二次排序
for (int i = 0; i < arr.length - 1 - 1; i++) {
if (arr[i] > arr[i + 1]) {
// 找一个中间变量
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
// 打印数组
printArr(arr);


// 第三次排序
for (int i = 0; i < arr.length - 1 - 2; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
//打印数组
printArr(arr);

//第四次排序
for (int i = 0; i < arr.length - 1 - 3 ; i++) {
//java.lang.ArrayIndexOutOfBoundsException
if (arr[i]>arr[i+1]) {
//找一个中间变量
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
printArr(arr);*/

System.out.println("-------------------------");

for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-j; j++) {
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
        printArr(arr);
}



使用Arrays数组工具进行操作:


public class StringSortDemo {
public static void main(String[] args) {
// 使用冒泡排序
String s = "dacgebf";
// 转换为字符数组才能遍历
char[] chs = s.toCharArray();


// 使用Arrays里面的sort()方法给字符数组进行排序
Arrays.sort(chs);
// 打印数组
System.out.println(Arrays.toString(chs));
}
}



// 写一个方法打印数组
public static void printArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "");
}
System.out.println();


}


}


 选择排序:

    * 选择排序:

    * 0索引开始,依次和后面的每一个元素进行比较

    * 第一次比较完毕,最小值出现在了最小索引处

    * 第二次比较完毕,次小值出现在了次小索引处

    * ...

    * 完毕后,就排序了。





0 0
原创粉丝点击