一、数组基本算法

冒泡排序

  1. //外层执行排序的次数
  2. for (int i = 0; i < a.length-1; i++) {
  3. //里层执行调换的数
  4. for (int j = 0; j < a.length-i-1; j++) {
  5. if(a[j]>a[j+1]){
  6. int temp =a[j];
  7. a[j]=a[j+1];
  8. a[j+1]=temp;
  9. }
  10. }
  11. }

选择排序

  1. 一共N个数 排序 n-1
  2. //外层用i来表示 排序的次数
  3. for (int i = 0; i < a.length-1; i++) {
  4. int miniIndex=i;//miniIndex表示暂定的最小数所在的位置
  5. //内层用j表示每个数比较的过程
  6. for (int j = i+1; j < a.length; j++) {
  7. if(a[j]<a[miniIndex]){
  8. miniIndex=j;
  9. }
  10. }
  11. //找到了最小数 交换位置
  12. if(miniIndex!=i){
  13. int temp=a[miniIndex];
  14. a[miniIndex]=a[i];
  15. a[i]=temp;
  16. }
  17. }

二、二维数组:

基本使用步骤

1.声明

int a[][]

2.开辟空间

a=new int[3][4]

3.给数组赋值

a[0][0]=10

4.使用

System.out.println(a[0][0])

5.注意:

System.out.println(a.length);

System.out.println(a[i].length);

System.out.println(a[i][j])

以上三种写法的含义

不规则数组

  1. //写法1
  2. int a[][]=new int[3][];
  3. a[0]=new int[3];
  4. a[1]=new int[4];
  5. a[2]=new int[2];
  6. a[2][1]=10;
  7. for (int i = 0; i < a.length; i++) {
  8. for (int j = 0; j < a[i].length; j++) {
  9. System.out.print(a[i][j]+"\t");
  10. }
  11. System.out.println("");
  12. }
  13. //写法2
  14. int b[][]={{1,2},{3,4,5},{6,7,8,9,10}};
  15. for (int i = 0; i < c.length; i++) {
  16. c[i]=new int[i+1];
  17. }